黑马程序员技术交流社区

标题: JDBC连接MySQL数据库,老是添加不上数据,怎么回事? [打印本页]

作者: 杨兴庭    时间: 2013-5-16 21:23
标题: JDBC连接MySQL数据库,老是添加不上数据,怎么回事?
本帖最后由 杨兴庭 于 2013-5-17 11:58 编辑
  1. //写了段向MySQL数据库demo数据库中student表中添加数据的代码,测试类测试没有报错,,但是MySQL中并没有添加上数据,代码如下,看是不是哪里写错,,检查一天了都没发现问题,麻烦大家看下,能找出问题提供20金币感谢。。有帮助的建议提供3金币感谢,谢谢大家了


  2. /**
  3. *
  4. * 学生类
  5. *
  6. */
  7. public class Student {
  8.         /*声明属性*/
  9.         private String name;
  10.         private String age;
  11.         private String sex;
  12.         
  13.         
  14.         /*getter,setter方法*/
  15.         public String getName() {
  16.                 return name;
  17.         }
  18.         public void setName(String name) {
  19.                 this.name = name;
  20.         }
  21.         public String getAge() {
  22.                 return age;
  23.         }
  24.         public void setAge(String age) {
  25.                 this.age = age;
  26.         }
  27.         public String getSex() {
  28.                 return sex;
  29.         }
  30.         public void setSex(String sex) {
  31.                 this.sex = sex;
  32.         }
  33.         
  34.         /*构造方法*/
  35.         public Student(String name, String age, String sex) {
  36.                 super();
  37.                 this.name = name;
  38.                 this.age = age;
  39.                 this.sex = sex;
  40.         }
  41.         
  42.         
  43.         
  44.         

  45. }

  46. import java.sql.Connection;
  47. import java.sql.DriverManager;
  48. import java.sql.PreparedStatement;
  49. import java.sql.ResultSet;
  50. import java.sql.SQLException;
  51. /**
  52. *
  53. * 封装连接数据库方法类
  54. *
  55. */
  56. public class BaseDAO {
  57.         
  58.         /*数据源设置*/
  59.         public static final String  DRIVER="com.mysql.jdbc.Driver";
  60.         public static final String  URL="jdbc:mysql://localhost:3306/demo";
  61.         public static final String USER="root";
  62.         public static final String PWD="123123";
  63.         
  64.         /*jdbc对象*/
  65.         protected Connection conn=null;
  66.         protected PreparedStatement pstmt=null;
  67.         protected ResultSet rs=null;
  68.         
  69.         
  70.         /*数据库连接方法*/
  71.         protected Connection getConn(){
  72.                
  73.                 try {
  74.                         Class.forName(DRIVER);
  75.                         conn=DriverManager.getConnection(URL,USER,PWD);
  76.                 } catch (ClassNotFoundException e) {
  77.                         System.out.println("没有找到相关驱动。。。。。。");
  78.                         e.printStackTrace();
  79.                 } catch (SQLException e) {
  80.                         System.out.println("连接数据库出错。。。");
  81.                         e.printStackTrace();
  82.                 }
  83.                
  84.                 return conn;
  85.                
  86.         }
  87.         
  88.         
  89.         /**
  90.          * 释放连接方法
  91.          */
  92.         protected void releaseALL(Connection conn,PreparedStatement pstmt,ResultSet rs){
  93.                
  94.                 if(rs!=null){
  95.                         try {
  96.                                 rs.close();
  97.                         } catch (SQLException e) {
  98.                                 // TODO Auto-generated catch block
  99.                                 e.printStackTrace();
  100.                         }
  101.                 }
  102.                 if(pstmt!=null){
  103.                         try {
  104.                                 pstmt.close();
  105.                         } catch (SQLException e) {
  106.                                 // TODO Auto-generated catch block
  107.                                 e.printStackTrace();
  108.                         }
  109.                 }
  110.                 if(conn!=null){
  111.                         try {
  112.                                 conn.close();
  113.                         } catch (SQLException e) {
  114.                                 // TODO Auto-generated catch block
  115.                                 e.printStackTrace();
  116.                         }
  117.                 }
  118.         }
  119.         
  120.         

  121. }
  122. /**
  123. *
  124. * 封装对数据库操作类
  125. *
  126. */
  127. public class MangerDAO extends BaseDAO {
  128.         
  129.         /**
  130.          * add方法
  131.          */
  132.         public int addStu(Student stu){
  133.                 int result=0;
  134.                 String inserSql="insert into student(name,age,sex)values(?,?,?)";
  135.                
  136.         
  137.                 try {
  138.                         conn=getConn();
  139.                         pstmt=conn.prepareStatement(inserSql);
  140.                         
  141.                         pstmt.setString(1, stu.getName()) ;
  142.                         pstmt.setString(2, stu.getAge());
  143.                         pstmt.setString(3, stu.getSex());
  144.                         
  145.                         
  146.                         
  147.                         
  148.                         
  149.                         
  150.                 } catch (SQLException e) {
  151.                         System.out.println("添加方法出错");
  152.                         e.printStackTrace();
  153.                 }finally{
  154.                         
  155.                         releaseALL(conn,pstmt,null);
  156.                 }
  157.         
  158.                
  159.                
  160.                 return result;
  161.                
  162.         }
  163.         

  164. }

  165. public class test {

  166.         /**
  167.          * 测试类
  168.          */
  169.         public static void main(String[] args) {
  170.                 /*声明张三对象*/
  171.                 Student zhangsan=new Student("张三","21","男");
  172.                 /*调用MangerDAO内add方法*/
  173.                 MangerDAO  test=new MangerDAO();
  174.                 test.addStu(zhangsan);
  175.         
  176.                
  177.                
  178.         }

  179. }
复制代码

a1.jpg (113.44 KB, 下载次数: 0)

a1.jpg

a2.jpg (79.32 KB, 下载次数: 0)

test类运行后没有添加上数据

test类运行后没有添加上数据

a3.jpg (61.68 KB, 下载次数: 0)

a3.jpg

作者: SOAR    时间: 2013-5-16 21:32
    conn=getConn();

144.                        pstmt=conn.prepareStatement(inserSql);

145.                        

146.                        pstmt.setString(1, stu.getName()) ;

147.                        pstmt.setString(2, stu.getAge());

148.                        pstmt.setString(3, stu.getSex());

你只是set了一堆东西,但是没有执行啊。pstmt.executeUpdate().呢
作者: 石贤芝    时间: 2013-5-17 04:40
本帖最后由 石贤芝 于 2013-5-17 04:42 编辑

楼上正解。。

加上这一句:pstmt.excuteUpdate();  试一下。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2