Mybatis 学习笔记(1.1)传统JDBC编程查询数据库
2018-01-17 15:17
513 查看
1.传统JDBC访问数据库:
Java程序都是通过JDBC去访问数据库,并对数据库进行操作的,
添加mysql jar包
总结:1.首先JDBC需要加载获取数据库驱动,并获取用户名密码进行连接;
2.对该连接打开preparedStatement对象,通过该对象执行查询,返回结果到resultSet对象中
3.使用resultSet读取数据,并转换为具体的pojo对象
4.关闭数据库相关连接
缺点:工作量大,需要先连接到数据库,还要对connection对象,preparedstatement对象,resultSet去获取数据,并且去关闭数据库
Java程序都是通过JDBC去访问数据库,并对数据库进行操作的,
添加mysql jar包
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency>
public class JdbcPractice { //slf4j是日志的门面,一般与日志库log4j结合使用,来实现自定义日志打印 private static final org.slf4j.Logger log = LoggerFactory.getLogger(JdbcPractice.class); private Connection getConnection(){ Connection connection = null; //class.forName 的作用是为了动态加载类到虚拟机当中,至于为什么不去执行.newInstance 去获取类对象,是因为在虚拟机加载类的时候,就已经执行了类中的静态方法,获取了类对象 try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/eh_feature4?useUnicode=true&characterEncoding=utf-8"; String user = "root"; String password = "123456"; connection = DriverManager.getConnection(url,user,password); } catch (ClassNotFoundException |SQLException ex) { log.error("JdbcPractice",ex); return null; } return connection; } public Doctor getDoctor(Integer doctorId){ Connection connection = getConnection(); PreparedStatement ps = null; ResultSet rs = null; try { ps = connection.prepareStatement("select DoctorId,Name,Gender from base_doctor where doctorId = ?"); ps.setInt(1,doctorId); rs = ps.executeQuery(); while(rs.next()){ Doctor doctor = new Doctor(); doctor.setDoctorName(rs.getString("Name")); doctor.setDoctorId(rs.getInt("DoctorId")); doctor.setDoctorSex(rs.getString("Gender")); return doctor; } } catch (SQLException e) { e.printStackTrace(); return null; }finally { this.close(rs,ps,connection); } return null; } private void close(ResultSet rs,PreparedStatement ps,Connection connection){ try { if(rs!=null&&!rs.isClosed()){ rs.close(); } } catch (SQLException e) { log.error("ResultSet rs close exception",e); } try { if(ps!=null&&!ps.isClosed()){ ps.close(); } } catch (SQLException e) { log.error("PreparedStatement ps close exception",e); } try { if(connection!=null && !connection.isClosed()){ connection.close(); } } catch (SQLException e) { log.error("Connection connection close exception",e); } }
//由于JVM在运行程序时,会先加载main函数,调用时不实例化这个对象,而是通过类名直接调用,所以用public static来调用 public static void main(String []args){ JdbcPractice jdbcPractice = new JdbcPractice(); Doctor doctor = jdbcPractice.getDoctor(13876); System.out.println("doctor name =>"+doctor.getDoctorName()); } }
总结:1.首先JDBC需要加载获取数据库驱动,并获取用户名密码进行连接;
2.对该连接打开preparedStatement对象,通过该对象执行查询,返回结果到resultSet对象中
3.使用resultSet读取数据,并转换为具体的pojo对象
4.关闭数据库相关连接
缺点:工作量大,需要先连接到数据库,还要对connection对象,preparedstatement对象,resultSet去获取数据,并且去关闭数据库
相关文章推荐
- mybatis学习之传统JDBC编程中的问题总结
- JavaWeb学习笔记-JDBC操作(2)[数据库的更新与查询]
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
- ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
- jdbc.api数据库编程实作教材 笔记1
- jdbc.api数据库编程实作教材 笔记2
- 【原创】OOP编程iBatis 学习笔记之四 多表关联查询表达
- ASP.NET温故而知新学习系列之ASP.NET多线程编程—多线程查询数据库记录
- 表的维护和改造 【数据库高效编程 - 学习笔记 第五章】
- JasperReport学习笔记4-查询数据库生成动态的报表(WEB)
- 事务处理及锁定 【数据库高效编程 - 学习笔记 第六章】
- 孙鑫VC学习笔记:第二十讲 ado数据库编程
- 数据库与MySQL 【数据库高效编程 - 学习笔记 第一章、第二章】
- java学习笔记——使用JDBC,对数据库进行增删改查(方案一)【推荐】
- 学习笔记:jdbc连接、操作数据库SQL Server 2008(二)
- ASP.NET 3.5核心编程学习笔记(21):LINQ查询语法
- 学习笔记:第20课 Hook 和数据库编程
- JAVA学习笔记4——JDBC方式连接数据库
- Java学习笔记11——数据库编程
- jdbc.api数据库编程实作教材 笔记3