1.初始创建
1.pom.xml引入mysql和junit的jar包
< dependency>
< groupId> junit< / groupId>
< artifactId> junit< / artifactId>
< version> 4.12 < / version>
< / dependency>
< dependency>
< groupId> mysql< / groupId>
< artifactId> mysql- connector- java< / artifactId>
< version> 5.1 .14 < / version>
< / dependency>
2.创建SQL
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0 ;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- Table structure for emp
-- -- -- -- -- -- -- -- -- -- -- -- -- -- --
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
`id` int ( 11 ) DEFAULT NULL,
`name` varchar ( 255 ) DEFAULT NULL,
`sex` varchar ( 255 ) DEFAULT NULL
) ENGINE= InnoDB DEFAULT CHARSET= gbk;
SET FOREIGN_KEY_CHECKS = 1 ;
3.测试:JdbcDemo.JdbcDemo
@Test
public void jdbcDemo ( ) {
String sql= "select * from emp" ;
Connection connection= null;
PreparedStatement preparedStatement= null;
ResultSet resultSet= null;
try {
Class. forName ( "com.mysql.jdbc.Driver" ) ;
connection= DriverManager. getConnection ( "jdbc:mysql://127.0.0.1:3306/demo-spring-framework-orm" , "root" , "root" ) ;
preparedStatement= connection. prepareStatement ( sql) ;
resultSet= preparedStatement. executeQuery ( ) ;
System. out. println ( resultSet== null? "resultSet = null" : "resultSet = " + resultSet. toString ( ) ) ;
while ( resultSet. next ( ) ) {
System. out. println ( resultSet. getObject ( 2 ) ) ;
ResultSetMetaData ResultSetMetaData= resultSet. getMetaData ( ) ;
}
} catch ( ClassNotFoundException e) {
e. printStackTrace ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
} finally {
if ( resultSet!= null) {
try {
resultSet. close ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
if ( preparedStatement!= null) {
try {
preparedStatement. close ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
if ( connection!= null) {
try {
connection. close ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
}
}
2.结果通过Emp对象接收
2.1.引入jar包:
< dependency>
< groupId> org. projectlombok< / groupId>
< artifactId> lombok< / artifactId>
< version> 1.18 .12 < / version>
< / dependency>
2.2.创建Emp对象
package com. gaoxinfu. demo. spring. framework. orm. v1. entity;
import lombok. Data;
@Data
public class Emp {
private Long id;
private String name;
private String sex;
@Override
public String toString ( ) {
return "Emp{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
'}' ;
}
}
2.3.测试:JdbcDemo.jdbcDemoForResultSet
@Test
public void jdbcDemoForResultSet ( ) {
String sql= "select * from emp" ;
Connection connection= null;
PreparedStatement preparedStatement= null;
ResultSet resultSet= null;
try {
Class. forName ( "com.mysql.jdbc.Driver" ) ;
connection= DriverManager. getConnection ( "jdbc:mysql://127.0.0.1:3306/demo-spring-framework-orm" , "root" , "root" ) ;
preparedStatement= connection. prepareStatement ( sql) ;
resultSet= preparedStatement. executeQuery ( ) ;
System. out. println ( resultSet== null? "resultSet = null" : "resultSet = " + resultSet. toString ( ) ) ;
while ( resultSet. next ( ) ) {
Emp emp= new Emp ( ) ;
emp. setId ( resultSet. getLong ( 1 ) ) ;
emp. setName ( resultSet. getString ( 2 ) ) ;
emp. setSex ( resultSet. getString ( 3 ) ) ;
System. out. println ( emp) ;
}
} catch ( ClassNotFoundException e) {
e. printStackTrace ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
} finally {
if ( resultSet!= null) {
try {
resultSet. close ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
if ( preparedStatement!= null) {
try {
preparedStatement. close ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
if ( connection!= null) {
try {
connection. close ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
}
}
}
2.4.测试结果
2.5.问题分析:结果对象处理存在重复
1. 从上面我们可以看到,通过创建Emp对象去接收Emp表中的数据能够很好地处理返回结果;
但是这里存在的问题:必须通过硬编码的方式( set) 去处理结果,这样导致的问题就是每新增一张表或者每处理一个结果的返回,意味着重复的操作
因此我们如何去处理这种结果的返回呢?
2. 对于结果这块的进化处理,我们放到demo- spring- framework- orm- v2这个项目之中
demo-spring-framework-orm-v1 源码地址
https://gitee.com/gaoxinfu_admin/open-source/tree/master/spring/spring-framework-5.0.2.RELEASE-%E4%B8%AD%E6%96%87%E6%B3%A8%E9%87%8A%E7%89%88/demo-spring-framework-orm-v1