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

下载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. KindEditor自动过滤首行缩进和全角空格的解决方法

    KindEditor 4.1.11:kindeditor-all.js 文件中大致第752行: /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?: ...

  2. Error in loadNamespace 的解决之道

    Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]])   在构建比较复杂的环 ...

  3. 洛谷P1038 神经网络(bfs,模拟,拓扑)

    题目背景 人工神经网络(Artificial Neural NetworkArtificialNeuralNetwork)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸 ...

  4. 使用Gson解析复杂、变态的Json数据(包含中文key)

    接口文档: app配置 接口 client/init 请求数据 json={"uid":"","sid":"",&quo ...

  5. 微软 workflow 工作流总结2

    1.公共的状态机工作流 书签的设置 可以在判断模块中的action中赋值,因为在action中肯定要进入到下一个书签,所以可以在此给书签name赋值

  6. Odoo-10开发环境配置与测试

    Odoo是使用Python写的开源ERP软件,这几年比较火.内部有实施能力的,这个软件还是很不错的.总体来说,国外的这类软件,更多是在做平台(比如微软的AX.SharePoint.SAP等)平台本身具 ...

  7. Linux文件与目录管理(学习笔记)

    本笔记为<鸟哥linux私房菜>第六章学习笔记 一.目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起              正确度比较好 相对路径:不是由 / 写起  ...

  8. C++实现串口的自动识别

    1.首先需要遍历注册表得到所有可用的串口 将得到的每一个串口保存到向量vector中,代码如下: // 得到所有的串口号 vector<string> cnComm::getComPort ...

  9. jQuery 双击事件(dblclick)

    在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click).即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那 ...

  10. java 英文单词拼写纠正框架(Word Checker)

    Word Checker 本项目用于单词拼写检查. 项目简介 word checker 用于单词拼写检查. Github 地址 特性说明 支持 i18n 错误提示支持 i18N 支持英文的单词纠错 可 ...