Java框架spring Boot学习笔记(十六):操作MySQL数据库

Posted pyqb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java框架spring Boot学习笔记(十六):操作MySQL数据库相关的知识,希望对你有一定的参考价值。

新建一个工程,添加对数据库的支持

下载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的记录删除掉了

 

以上是关于Java框架spring Boot学习笔记(十六):操作MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

Java框架spring Boot学习笔记:注入对象类型属性

Java真的不难(四十六)Spring Boot的入门

Java框架spring Boot学习笔记:基于构造函数的依赖注入

Java框架spring Boot学习笔记(十三):aop实例操作

Java框架spring Boot学习笔记:Bean的作用域

Java框架spring Boot学习笔记:bean管理(注解和配置文件混合使用)