Java_Web
java操作Mysql数据库
- SQL语句的基本语法还是数据库操作那样不变,再java中调用的话需要借助Statement对象,相关方法介绍参照JAVA_Web(数据库连接基本操作)。
SQL语句使用
- 这边建议将sql语句写作一个字符串对象,然后将该对象作为参数传给相应的方法让他执行。
- 查询得到的结果集用一个ResultSet对象接收
该对象的next() 方法:可以将元组指针后移一位,若已经到最后了则会返回空,所以可以用这个方法作为循环的判断条件。
该对象的getString(String name) 方法:可以查找当前元组里对应name列的内容。也可以写入数字,查询结果的顺序来找。
动态sql语句的实现
-
定义一个字符串对象作为sql语句,再用一些方法将这条String的对象搞成动态的,就可以实现sql语句的动态化,这边我提供俩种方法做参考:
-
将sql语句中关键的部分,比如要查找的名字作为一个单独的String对象,在创建sql对象的时候,将此对象作为一段字符串和其他固定的语法格式拼接起来组成sql,这样,通过修改表示名字的String对象即可实现动态sql
例子:
String name = "zhangsan";
String sql = "select * from user where name = "+name;
//con是Connection型对象,此处省略获得Connection对象的步骤,如要了解,参照本文开头的链接
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
//rs为sql语句最后的执行结果
- 使用prepareStatement来实现动态sql,将定义的String型sql语句中的关键部分写为?,在后续代码中通过调用prepareStatement.setString(int a,String b);的方法来为?赋值.这个方法第一个参数:是指对第几个问号赋值,第二个参数 :是指对其赋的值是什么。
String sql = "select * from user where name = ?";
//con是Connection型对象,此处省略获得Connection对象的步骤,如要了解,参照本文开头的链接
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1,"zhangsan"); //指明第一个问号的值为"zhangsan"
ResultSet re = stmt.executeQuery();
//rs为sql语句最后的执行结果
sql增删改的使用
- 使用Statement对象的executeUpdate(String sql)方法来将改变数据的sql语句更新至数据库。
- 动态的sql语句使用PreparedStatement对象的executeUpdate()方法来将改变数据的sql语句更新至数据库。(参照上面动态sql语句这部分)
- 以上两个方法的返回值都是一个整数,这个整数表示执行当前sql语句后有多少个元组收到了影响。