JDBC回顾
来源:互联网 发布:广东省造价软件 编辑:程序博客网 时间:2024/06/05 11:08
用了一段时间的Mybatis,突然感觉JDBC有点陌生,虽然Mybatis好用,但不能忘本啊,赶紧来回顾一下JDBC。
首先建立实体类:Car
package com.test;public class Car { private Integer c_no; private String c_name; public Car() { super(); // TODO Auto-generated constructor stub } public Car(Integer c_no, String c_name) { super(); this.c_no = c_no; this.c_name = c_name; } public Integer getC_no() { return c_no; } public void setC_no(Integer c_no) { this.c_no = c_no; } public String getC_name() { return c_name; } public void setC_name(String c_name) { this.c_name = c_name; } @Override public String toString() { return "Car [c_no=" + c_no + ", c_name=" + c_name + "]"; }}
再设置数据库的连接及数据操作(Mysql的连接jar包一定要记得导入,不然会报错):
package com.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class ConnectionToMysql { private String url;//数据库的连接地址 private String user;//用户 private String password;//数据库登录密码 private String driverClass;//数据库驱动 private Connection connection; private PreparedStatement preparedStatement; { url="jdbc:mysql:///mybatis"; user="root"; password="123456"; driverClass="com.mysql.jdbc.Driver"; } public void getConnection() throws ClassNotFoundException, SQLException{ Class.forName(driverClass); //建立数据库的连接 connection=DriverManager.getConnection(url,user,password); System.out.println("connection!");//查询所有的Car public List<Car> getAll(){ String sql="select * from car"; List<Car> carList=new ArrayList<>(); try {//使用preparedStatement(预编译的SQL语句,可以防止SQL注入),当然也可以使用Statement,但是一般建议使用preparedStatement. preparedStatement=connection.prepareStatement(sql);//执行查询 ResultSet result= preparedStatement.executeQuery();//将查询出的结果封装成Car对象(由于不是ORM,不会自动封装,所以只能靠自己手动封装了) while(result.next()){//result.getxxx()中的参数可以是表中对应的列表名,也可以是索引值(列相应的顺序) int c_no=result.getInt("c_no"); String c_name=result.getString("c_name"); System.out.println(c_no+"----"+c_name); Car car=new Car(c_no,c_name); carList.add(car); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return carList; }//查询指定no的Carpublic Car queryByNo(int c_no ){ String c_name=null; //使用?表示占位符 String sql="select c_name from car where c_no = "+no; try { //使用preparedStatement(预编译) preparedStatement=connection.prepareStatement(sql); //给占位符赋值 preparedStatement.setInt(1, c_no); //执行查询 ResultSet rs=preparedStatement.executeQuery(); while(rs.next()){ c_name=rs.getString("c_name"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return new Car(c_no,c_name); }}//关闭连接public void closeMysql() throws Exception{ con.close(); }
由于想偷懒,并没有将操作数据的方法写入Dao类,此处也省略了增加、修改、删除,但大体操作也差不了。
那么做个简单的JDBC使用总结:
-加载驱动,及连接细节(必须进入相应Jar包);
- 建立连接;
- 使用preparedStatement/statement来进行操作数据,执行时使用preparedStatement/statement.executeQuery()(查询)/execute()(增、删、改);
- 关闭数据库的连接(数据涉及到资源,所以要及时的关闭)。
不是ORM,自己要写封装代码,是真的难受!!
阅读全文
1 0
- JDBC回顾
- JDBC回顾
- JDBC回顾
- JDBC回顾
- JDBC回顾
- jdbc回顾
- JDBC回顾
- JDBC的回顾
- Java回顾之JDBC
- Java回顾之JDBC
- Jdbc回顾NO.1
- 01-jdbc回顾
- MySQL与JDBC回顾
- JDBC基础回顾(5天)
- JDBC部分回顾注意点
- 【回顾】还记得JDBC吗?
- 传统的JDBC开发回顾
- jdbc知识回顾和总结
- ksoap2_WebService客户端调用
- Error: Could not find an installed version of Gradle either in Android Studio
- uva 1398
- 【快速幂详解】
- MAPREDUCE 编程模型理解
- JDBC回顾
- iphone 6s无sim卡
- 【opencv学习之十二】opencv滑条及实例
- 安卓应用版本更新的一些逻辑整理
- (六)数据结构之二叉树的简单实现
- Spring MVC学习总结(17)——SpringMVC之接口规范与Controller规范
- MySql大小写默认不敏感
- TabLayout结合viewpager使用方法
- _mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':问题的解决