1 packagecom.jdbc;2
3 importorg.junit.Test;4 importorg.springframework.jdbc.core.JdbcTemplate;5 importorg.springframework.jdbc.core.RowMapper;6 importorg.springframework.jdbc.datasource.DriverManagerDataSource;7
8 import java.sql.*;9 importjava.util.List;10
11 public classJdbcTemplateDemo {12 //1 增加操作
13 @Test14 public voidadd() {15 //设置数据库信息
16 DriverManagerDataSource dataSource = newDriverManagerDataSource();17 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
18 dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
19 dataSource.setUsername("root"); //用户名
20 dataSource.setPassword("xxxxxx"); //密码21
22 //创建jdbcTemplate对象,设置数据库
23 JdbcTemplate jdbcTemplate = newJdbcTemplate(dataSource);24
25 //sql语句
26 String sql = "INSERT INTO User VALUES(?,?)";27
28 //调用jdbcTemplate对象里面的update方法实现插入操作
29 int rows = jdbcTemplate.update(sql, "Lucy", "250");30 System.out.println(rows);31 }32
33 //2 删除操作
34 @Test35 public voiddelete() {36 //设置数据库信息
37 DriverManagerDataSource dataSource = newDriverManagerDataSource();38 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
39 dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
40 dataSource.setUsername("root"); //用户名
41 dataSource.setPassword("xxxxxx"); //密码42
43 //创建jdbcTemplate对象,设置数据库
44 JdbcTemplate jdbcTemplate = newJdbcTemplate(dataSource);45
46 //sql语句
47 String sql = "DELETE FROM user WHERE username=?";48
49 //调用jdbcTemplate对象里面的update方法实现删除操作
50 int rows = jdbcTemplate.update(sql, "Lucy");51 System.out.println(rows);52 }53
54 //3 修改操作
55 @Test56 public voidupdate() {57 //设置数据库信息
58 DriverManagerDataSource dataSource = newDriverManagerDataSource();59 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
60 dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
61 dataSource.setUsername("root"); //用户名
62 dataSource.setPassword("xxxxxx"); //密码63
64 //创建jdbcTemplate对象,设置数据库
65 JdbcTemplate jdbcTemplate = newJdbcTemplate(dataSource);66
67 //sql语句
68 String sql = "UPDATE user SET password=? WHERE username=?";69 //调用jdbcTemplate对象里面的update方法实现操作修改方法
70 int rows = jdbcTemplate.update(sql, "111111", "Lucy");71 System.out.println(rows);72 }73
74 //4 查询操作75 //4.1查询有多少记录
76 @Test77 public voidfindCount() {78 //设置数据库信息
79 DriverManagerDataSource dataSource = newDriverManagerDataSource();80 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
81 dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
82 dataSource.setUsername("root"); //用户名
83 dataSource.setPassword("xxxxxx"); //密码84
85 //创建jdbcTemplate对象,设置数据库
86 JdbcTemplate jdbcTemplate = newJdbcTemplate(dataSource);87
88 //sql语句
89 String sql = "SELECT count(*) FROM user";90 //调用jdbcTemplate对象里面的queryForObject 方法得到记录数91 //queryForObject 查询返回某一个值,第一个参数,第二个参数返回类型
92 int count = jdbcTemplate.queryForObject(sql, Integer.class);93 System.out.println("一共查询到" + count + "条记录");94 }95
96 //4.2查询返回对象,jdbc原始操作
97 @Test98 public voidfindObject() {99 //创建连接对象
100 Connection conn = null;101 //创建预编译对象
102 PreparedStatement psmt = null;103 //创建结果集对象
104 ResultSet rs = null;105
106 //加载驱动
107 try{108 Class.forName("com.mysql.jdbc.Driver");109 conn = DriverManager.getConnection("jdbc:mysql:///test", "root", "xxxxxx");110 //编写sql语句,查询表中所有记录
111 String sql = "SELECT * FROM user WHERE username=?";112 //预编译sql
113 psmt =conn.prepareStatement(sql);114 //设置参数值
115 psmt.setString(1, "Lucy");116 //执行sql
117 rs =psmt.executeQuery();118 //遍历结果集
119 while(rs.next()) {120 //得到返回结果
121 String username = rs.getString("username");122 String password = rs.getString("password");123 //放到User对象里面
124 User user = newUser();125 user.setUsername(username);126 user.setPassword(password);127 //输出查询结果
128 System.out.println(user);129 }130 } catch(Exception e) {131 e.printStackTrace();132 } finally{133 try{134 //关闭数据库
135 rs.close();136 psmt.close();137 conn.close();138 } catch(SQLException e) {139 e.printStackTrace();140 }141 }142 }143
144 //4.3查询返回对象
145 @Test146 public voidfindObject1() {147 //设置数据库信息
148 DriverManagerDataSource dataSource = newDriverManagerDataSource();149 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
150 dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
151 dataSource.setUsername("root"); //用户名
152 dataSource.setPassword("xxxxxx"); //密码153
154 //创建jdbcTemplate对象,设置数据库
155 JdbcTemplate jdbcTemplate = newJdbcTemplate(dataSource);156
157 //sql语句 根据username查询
158 String sql = "SELECT * FROM user WHERE username=?";159
160 //查询返回对象,第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数
161 User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");162 System.out.println(user);163 }164
165 //4.4查询返回对象List
166 @Test167 public voidfindList() {168 //设置数据库信息
169 DriverManagerDataSource dataSource = newDriverManagerDataSource();170 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
171 dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
172 dataSource.setUsername("root"); //用户名
173 dataSource.setPassword("xxxxxx"); //密码174
175 //创建jdbcTemplate对象,设置数据库
176 JdbcTemplate jdbcTemplate = newJdbcTemplate(dataSource);177
178 //sql语句 查询所有记录
179 String sql = "SELECT * FROM user";180
181 //query第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数可省略
182 List list = jdbcTemplate.query(sql, newMyRowMapper());183 System.out.println(list);184 }185 }186 //自己写数据实现类
187 class MyRowMapper implements RowMapper{188 public User mapRow(ResultSet rs,int num) throwsSQLException{189 //1 从结果集里得到数据
190 String username = rs.getString("username");191 String password = rs.getString("password");192 //2 把得到的数据放到对象里面
193 User user = newUser();194 user.setUsername(username);195 user.setPassword(password);196 returnuser;197 }198 }