新建一个工程,添加对数据库的支持
下载mysql驱动包 mysql-connector-java-5.1.7-bin.jar,快捷键ctrl+alt+shift+s,添加jar包到工程
编写JdbcTemplateDemo.java
1 package com.jdbc;
2
3 import org.junit.Test;
4 import org.springframework.jdbc.core.JdbcTemplate;
5 import org.springframework.jdbc.core.RowMapper;
6 import org.springframework.jdbc.datasource.DriverManagerDataSource;
7
8 import java.sql.*;
9 import java.util.List;
10
11 public class JdbcTemplateDemo {
12 //1 增加操作
13 @Test
14 public void add() {
15 //设置数据库信息
16 DriverManagerDataSource dataSource = new DriverManagerDataSource();
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 = new JdbcTemplate(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 @Test
35 public void delete() {
36 //设置数据库信息
37 DriverManagerDataSource dataSource = new DriverManagerDataSource();
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 = new JdbcTemplate(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 @Test
56 public void update() {
57 //设置数据库信息
58 DriverManagerDataSource dataSource = new DriverManagerDataSource();
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 = new JdbcTemplate(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 @Test
77 public void findCount() {
78 //设置数据库信息
79 DriverManagerDataSource dataSource = new DriverManagerDataSource();
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 = new JdbcTemplate(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 @Test
98 public void findObject() {
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 = new User();
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 @Test
146 public void findObject1() {
147 //设置数据库信息
148 DriverManagerDataSource dataSource = new DriverManagerDataSource();
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 = new JdbcTemplate(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 @Test
167 public void findList() {
168 //设置数据库信息
169 DriverManagerDataSource dataSource = new DriverManagerDataSource();
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 = new JdbcTemplate(dataSource);
177
178 //sql语句 查询所有记录
179 String sql = "SELECT * FROM user";
180
181 //query第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数可省略
182 List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
183 System.out.println(list);
184 }
185 }
186 //自己写数据实现类
187 class MyRowMapper implements RowMapper<User> {
188 public User mapRow(ResultSet rs,int num) throws SQLException{
189 //1 从结果集里得到数据
190 String username = rs.getString("username");
191 String password = rs.getString("password");
192 //2 把得到的数据放到对象里面
193 User user = new User();
194 user.setUsername(username);
195 user.setPassword(password);
196 return user;
197 }
198 }
编写User类User.java
1 package com.jdbc;
2
3 public class User {
4 private String username;
5 private String password;
6
7 public void setUsername(String username){ this.username = username; }
8 public void setPassword(String password){ this.password = password; }
9 public String getUsername(){ return username; }
10 public String getPassword(){ return password; }
11
12 @Override
13 public String toString(){ return "User [username="+username+",password="+password+"]"; }
14 }
执行增加数据add(),数据库中添加一个记录。
执行修改数据update(),修改表中的记录。
手动增加几条记录
执行查询有多少记录findCount(),控制台输出
一共查询到4条记录
执行查询返回对象findObject(),输出
User [username=Lucy,password=111111]
执行查询返回对象findObject1(),输出
User [username=Tom,password=aaabbbccc]
执行查询返回对象List findList(),输出
[User [username=Lucy,password=111111], User [username=Tom,password=aaabbbccc], User [username=Jacky,password=123456], User [username=Lily,password=abccba]]
执行删除操作 delete(),username为Lucy的记录删除掉了