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

下载mysql驱动包 mysql-connector-java-5.1.7-bin.jar,快捷键ctrl+alt+shift+s,添加jar包到工程

编写JdbcTemplateDemo.java

 package com.jdbc;

 import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource; import java.sql.*;
import java.util.List; public class JdbcTemplateDemo {
//1 增加操作
@Test
public void add() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "INSERT INTO User VALUES(?,?)"; //调用jdbcTemplate对象里面的update方法实现插入操作
int rows = jdbcTemplate.update(sql, "Lucy", "250");
System.out.println(rows);
} //2 删除操作
@Test
public void delete() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "DELETE FROM user WHERE username=?"; //调用jdbcTemplate对象里面的update方法实现删除操作
int rows = jdbcTemplate.update(sql, "Lucy");
System.out.println(rows);
} //3 修改操作
@Test
public void update() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "UPDATE user SET password=? WHERE username=?";
//调用jdbcTemplate对象里面的update方法实现操作修改方法
int rows = jdbcTemplate.update(sql, "111111", "Lucy");
System.out.println(rows);
} //4 查询操作
//4.1查询有多少记录
@Test
public void findCount() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句
String sql = "SELECT count(*) FROM user";
//调用jdbcTemplate对象里面的queryForObject 方法得到记录数
//queryForObject 查询返回某一个值,第一个参数,第二个参数返回类型
int count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println("一共查询到" + count + "条记录");
} //4.2查询返回对象,jdbc原始操作
@Test
public void findObject() {
//创建连接对象
Connection conn = null;
//创建预编译对象
PreparedStatement psmt = null;
//创建结果集对象
ResultSet rs = null; //加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:///test", "root", "xxxxxx");
//编写sql语句,查询表中所有记录
String sql = "SELECT * FROM user WHERE username=?";
//预编译sql
psmt = conn.prepareStatement(sql);
//设置参数值
psmt.setString(1, "Lucy");
//执行sql
rs = psmt.executeQuery();
//遍历结果集
while (rs.next()) {
//得到返回结果
String username = rs.getString("username");
String password = rs.getString("password");
//放到User对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
//输出查询结果
System.out.println(user);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//关闭数据库
rs.close();
psmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} //4.3查询返回对象
@Test
public void findObject1() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句 根据username查询
String sql = "SELECT * FROM user WHERE username=?"; //查询返回对象,第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");
System.out.println(user);
} //4.4查询返回对象List
@Test
public void findList() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驱动
dataSource.setUrl("jdbc:mysql:///test"); //添加数据库路径
dataSource.setUsername("root"); //用户名
dataSource.setPassword("xxxxxx"); //密码 //创建jdbcTemplate对象,设置数据库
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //sql语句 查询所有记录
String sql = "SELECT * FROM user"; //query第一个参数sql语句,第二个参数是RowMapper接口,需要自己写类做数据封装,第三个参数是可变参数可省略
List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
System.out.println(list);
}
}
//自己写数据实现类
class MyRowMapper implements RowMapper<User> {
public User mapRow(ResultSet rs,int num) throws SQLException{
//1 从结果集里得到数据
String username = rs.getString("username");
String password = rs.getString("password");
//2 把得到的数据放到对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
return user;
}
}

编写User类User.java

 package com.jdbc;

 public class User {
private String username;
private String password; public void setUsername(String username){ this.username = username; }
public void setPassword(String password){ this.password = password; }
public String getUsername(){ return username; }
public String getPassword(){ return password; } @Override
public String toString(){ return "User [username="+username+",password="+password+"]"; }
}

执行增加数据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 学习笔记(十五):操作MySQL数据库的更多相关文章

  1. Java框架spring 学习笔记(五):Bean定义继承

    子 bean 的定义继承父定义的配置数据.子定义可以根据需要重写一些值,或者添加其他值. 编写HelloWorld.java package com.example.spring; public cl ...

  2. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  3. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

  4. Java框架spring 学习笔记(十二):aop实例操作

    使用aop需要在网上下载两个jar包: aopalliance.jar aspectjweaver.jar 为idea添加jar包,快捷键ctrl+shift+alt+s,打开添加jar包的对话框,将 ...

  5. MYSQL进阶学习笔记十五:MySQL 的账号权限赋予!(视频序号:进阶_33,34)

    知识点十六:MySQL的账号权限赋予(33) 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执 ...

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

    配置文件和注解混合使用 创建对象操作使用配置文件方式实现 注入属性的操作使用注解方式实现 编写BookDao.java和OrderDao.java文件 BookDao.java package com ...

  7. Java框架spring学习笔记(十七):事务操作

    事务操作创建service和dao类,完成注入关系 service层叫业务逻辑层 dao层单纯对数据库操作层,在dao层不添加业务 假设现在有一个转账的需求,狗蛋有10000元,建国有20000元,狗 ...

  8. Java框架spring 学习笔记(十六):c3p0连接池的配置以及dao使用jdbcTemplate

    连接池可以大大提高数据库的性能和连接速度,将那些已连接的数据库连接存放在一个连接池里,以后别人要连接数据库的时候,将不会重新建立数据库连接,直接从连接池中取出可用的连接,用户使用完毕后,会释放连接重新 ...

  9. Java框架spring 学习笔记(十九):事务管理(注解管理)

    注解管理的方式要比xml配置方式要简单很多 只需在配置文件中添加事务注解 <?xml version="1.0" encoding="UTF-8"?> ...

随机推荐

  1. soapui的简单使用

    工具下载地址:https://www.soapui.org/downloads/soapui.html 名词解释 https://www.cnblogs.com/fcfblog/p/5830205.h ...

  2. 2016-08-15T16:00:00.000Z 格式转换成yyyy-MM-dd HH:mm:ss格式

    public static String UTCStringtODefaultString(String UTCString) { try { if (CommonUtils.notNullAndEm ...

  3. no module named win32api

    1 首先下载pywin32 https://sourceforge.net/projects/pywin32/files/pywin32/ 2进入虚拟环境 D:\env\jdscrapy\Lib\si ...

  4. 负载均衡器技术Nginx和F5的优缺点对比

    负载均衡器技术Nginx和F5的优缺点对比 博客分类: 应用服务 F5nginx  对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的 ...

  5. Java定时器小实例

    有时候,我们需要在Java中定义一个定时器来轮询操作,比如每隔一段时间查询.删除数据库中的某些数据等,下面记录一下一种简单实现方式 1,首先新建一个类,类中编写方法来实现业务操作 public cla ...

  6. Webpack 学习总结

    1.Webpack的特性 webpack 模块打包机,分析你的项目结构,找到JavaScript模块以及其他一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),将其打包为合适的格式以 ...

  7. Pandas之Dataframe叠加,排序,统计,重新设置索引

    Pandas之Dataframe索引,排序,统计,重新设置索引 一:叠加 import pandas as pd a_list = [df1,df2,df3] add_data = pd.concat ...

  8. python守护进程

    1.守护进程 [1]使用runner这个模块直接创建守护进程,非常方便. [2]运行方法:python xxx.py start|stop|restart [3]调用python xxx.py sto ...

  9. 给datagridview的下拉框添加valueChange事件

    修改datagridview的EditMode属性为EdutOnEnter,否则需要点2次以上才出现下拉框 1.给DataGridView添加EditingControlShowing事件: 2.编辑 ...

  10. Kafka安装及开启SASL_PLAINTEXT认证(用户名和密码认证)

    前些日子要封装一个kafka的客户端驱动,配置了下kafka环境,发现配置复杂度完爆rabbitmq很多倍啊,而且发布订阅模式使用起来也很麻烦,可能就胜在分布式了吧. kafka需要java环境,自行 ...