新建一个工程,添加对数据库的支持
下载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的记录删除掉了