1. JdbcTemplate 操作数据库(添加)

1. 创建对应的实体类

package com.demo.study_spring.stu_jdbctemplate.entity;public class User {private int id;private String username;private int stste;private String phone;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getStste() {return stste;}public void setStste(int stste) {this.stste = stste;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}
}

2. 编写service和dao

service

package com.demo.study_spring.stu_jdbctemplate.service;import com.demo.study_spring.stu_jdbctemplate.dao.MyDao;
import com.demo.study_spring.stu_jdbctemplate.entity.User;
import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service
public class MyserviceImpl implements MyService{@Resourceprivate MyDao myDao;@Overridepublic void add(User user) {myDao.addUser(user);}
}

1. 在dao进行数据库添加操作

package com.demo.study_spring.stu_jdbctemplate.dao;import com.demo.study_spring.stu_jdbctemplate.entity.User;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;import javax.annotation.Resource;@Repository
public class MyDaoImpl implements MyDao {@Resourceprivate JdbcTemplate jdbcTemplate;@Overridepublic void addUser(User user) {// 创建Sql语句String sql = "instert into user (username, state, phone) values(?,?,?)";// 调用方法实现int update = jdbcTemplate.update(sql, user.getUsername(), user.getState(), user.getPhone());System.out.println(update);}
}

2. 调用JdbcTempalte 对象里面 update 方法实现。

有两个参数,第一个参数:sql语句;第二个参数为可变参数,设置sql语句的值。

3. 再贴下配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!--开启组件扫描--><context:component-scan base-package="com.demo.study_spring"></context:component-scan><!--数据库连接池--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"><property name="url" value="jdbc:mysql://39.105.161.73:3306/test" /><property name="username" value="root" /><property name="password" value="root" /><property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /></bean><!--创建JdbcTemplate 对象--><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!--注入dataSource--><property name="dataSource" ref="dataSource"></property></bean>
</beans>

4. 测试方法:

@Testpublic void textUser() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);com.demo.study_spring.stu_jdbctemplate.entity.User user = new com.demo.study_spring.stu_jdbctemplate.entity.User();user.setUsername("zhangsan");user.setState(1);user.setPhone("18366665786");myServiceImpl.add(user);}

2. JdbcTemplate 操作数据库(修改和删除)

service

package com.demo.study_spring.stu_jdbctemplate.service;import com.demo.study_spring.stu_jdbctemplate.entity.User;public interface MyService {void add(User user);void update(User user);void delete(int id);
}

serviceimpl

package com.demo.study_spring.stu_jdbctemplate.service;import com.demo.study_spring.stu_jdbctemplate.dao.MyDao;
import com.demo.study_spring.stu_jdbctemplate.entity.User;
import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service
public class MyserviceImpl implements MyService{@Resourceprivate MyDao myDao;@Overridepublic void add(User user) {myDao.addUser(user);}@Overridepublic void update(User user) {myDao.updateUser(user);}@Overridepublic void delete(int id) {myDao.delete(id);}
}

dao

package com.demo.study_spring.stu_jdbctemplate.dao;import com.demo.study_spring.stu_jdbctemplate.entity.User;public interface MyDao {void addUser(User user);void updateUser(User user);void delete(int id);
}

daoimpl

package com.demo.study_spring.stu_jdbctemplate.dao;import com.demo.study_spring.stu_jdbctemplate.entity.User;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;import javax.annotation.Resource;@Repository
public class MyDaoImpl implements MyDao {@Resourceprivate JdbcTemplate jdbcTemplate;@Overridepublic void addUser(User user) {// 创建Sql语句String sql = "insert into user (username, state, phone) values(?,?,?)";// 调用方法实现int update = jdbcTemplate.update(sql, user.getUsername(), user.getState(), user.getPhone());System.out.println(update);}@Overridepublic void updateUser(User user) {String sql = "update user set username=?,state =?,phone =? where id = ?";int update = jdbcTemplate.update(sql, user.getUsername(), user.getState(), user.getPhone(), user.getId());System.out.println(update);}@Overridepublic void delete(int id) {String sql = "delete from user where id= ?";int update = jdbcTemplate.update(sql, id);System.out.println(update);}
}

测试方法:

@Testpublic void testUserUpdate() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);com.demo.study_spring.stu_jdbctemplate.entity.User user1 = new com.demo.study_spring.stu_jdbctemplate.entity.User();user1.setId(1);user1.setPhone("18588888888");user1.setState(1);user1.setUsername("zhangsan");myServiceImpl.update(user1);}@Testpublic void testUserDelete() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);myServiceImpl.delete(3);}

3. JdbcTemplate 操作数据库 (查询)

1. 查询返回某个值

1.查询表里有多少条记录,返回是某个值

2. 使用JdbcTemplate实现查询返回某个值

service

/*** 查询表中记录数*/int getCount();

serviceImpl

@Overridepublic int getCount() {int i = myDao.selectCount();return i;}

dao

int selectCount();

daoImpl

 @Overridepublic int selectCount() {String sql = "select count(id) from user";Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);return integer;}

测试类

@Testpublic void testSelectCount() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);int count = myServiceImpl.getCount();System.out.println(count);}

2. 查询返回某个对象

第一个参数:sql语句

第二个参数:RowMapper,是接口,返回不同类型的数据,使用这个接口可以实现完成数据的封装

第三个参数:sql语句的值

service

User getOne(int id);

serviceImpl

@Overridepublic User getOne(int id) {return myDao.selectOne(id);}

dao

User selectOne(int id);

daoImpl

@Overridepublic User selectOne(int id) {String sql = "select * from user where id = ?";User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), id);return user;}

测试类

@Testpublic void testGetOne() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);com.demo.study_spring.stu_jdbctemplate.entity.User one = myServiceImpl.getOne(1);System.out.println(one);}

3,查询返回集合

第一个参数:sql语句

第二个参数: RowMapper,是接口,返回不同类型的数据,使用这个接口可以实现完成数据的封装

第三个参数:sql语句的值

service

 List<User> getList();

serviceImpl

@Overridepublic List<User> getList() {return myDao.selectList();}

dao

List<User> selectList();

daoImpl

@Overridepublic List<User> selectList() {String sql = "select * from user";List<User> userList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));return userList;}

测试类

@Testpublic void testGetList() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);List<com.demo.study_spring.stu_jdbctemplate.entity.User> list = myServiceImpl.getList();System.out.println(list);}

4. JdbcTemplate 批量增加

第一个参数:sql

第二个参数:List集合,添加多条记录数据

service

void batchAdd(List<Object []> users);

serviceImpl

@Overridepublic void batchAdd(List<Object []> users) {myDao.batchAdd(users);}

dao

void batchAdd(List<Object []> users);

daoImpl

 @Overridepublic void batchAdd(List<Object []> users) {String sql = "insert into user (username, state, phone) values(?,?,?)";int[] ints = jdbcTemplate.batchUpdate(sql, users);System.out.println(Arrays.toString(ints));}
}

测试方法

@Testpublic void testBatchSave() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);Object [] o1 = {"lisi", "1", "18233334444"};Object [] o2 = {"wangwu", "0", "18233335555"};List<Object []> list = new ArrayList<>();list.add(o1);list.add(o2);myServiceImpl.batchAdd(list);System.out.println(list);}

5. JdbcTemplate 批量修改和批量删除

service

void bactchUpdate(List<Object []> users);void bactchDelete(List<Object []> users);

serviceImpl

@Overridepublic void bactchUpdate(List<Object[]> users) {myDao.batchUpdate(users);}@Overridepublic void bactchDelete(List<Object[]> users) {myDao.batchDelete(users);}

dao

 void batchUpdate(List<Object []> users);void batchDelete(List<Object []> users);

daoImpl

@Overridepublic void batchUpdate(List<Object[]> users) {String sql = "update user set username=?,state =?,phone =? where id = ?";int[] ints = jdbcTemplate.batchUpdate(sql, users);System.out.println(Arrays.toString(ints));}@Overridepublic void batchDelete(List<Object[]> users) {String sql = "delete from user where id= ?";int[] ints = jdbcTemplate.batchUpdate(sql, users);System.out.println(Arrays.toString(ints));}

测试类

@Testpublic void testBatchUpdate() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);Object [] o1 = {"zhaoliu", "1", "18233334444", 2};Object [] o2 = {"wangwu", "1", "18233335555", 5};List<Object []> list = new ArrayList<>();list.add(o1);list.add(o2);myServiceImpl.bactchUpdate(list);System.out.println(list);}@Testpublic void testBatchDelete() {ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");MyserviceImpl myServiceImpl = context.getBean("myserviceImpl", MyserviceImpl.class);Object [] o1 = {4};Object [] o2 = {5};List<Object []> list = new ArrayList<>();list.add(o1);list.add(o2);myServiceImpl.bactchDelete(list);System.out.println(list);}

十五、Jdbc操作数据库相关推荐

  1. java监听数据库操作_第十六篇——JDBC操作数据库之监听器

    JavaWeb应用中,很多的地方都和session有关.因此session相关的事件监听器,在日常工作中非常有用. 有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实 ...

  2. 十五、Mysql数据库日志

    Mysql数据库日志 十五.Mysql数据库日志 一.日志分类 1.错误日志 错误日志说明 错误日志的配置 错误日志轮询 安装数据库故障排除 2.普通查询日志 普通查询日志说明 普通查询日志的配置 3 ...

  3. JavaWeb:用JDBC操作数据库

    JDBC系列阅读 JavaWeb:用JDBC操作数据库 JavaWeb:JDBC之事务 JavaWeb:JDBC之数据库连接池 使用JDBC实现水果超市管理系统 1. 什么是JDBC JDBC的全称是 ...

  4. 25、jdbc操作数据库(2)

    说一下使用jdbc时涉及到的一些基本的接口和类 java.sql.Driver 是数据库驱动接口,com.mysql.jdbc.Driver是mysql对应的驱动,由数据库供应商实现,用于提供驱动,实 ...

  5. 24、jdbc操作数据库(1)

    什么是jdbc? 看一下官方怎么说,JDBC 英文名Java DataBase Connectivity,使用java连接数据库的工具,就是一组使用java代码来执行SQL语句的API. Jdbc有什 ...

  6. Mybatis介绍、jdbc操作数据库原始写法以及Mybatis架构

    文章目录 Mybatis介绍 jdbc操作数据库原生写法 使用jdbc编程问题总结 Mybatis架构 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个 ...

  7. python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  8. jdba访问mysql_Java中JDBC操作数据库的步骤

    Java中JDBC操作数据库的步骤,今天给喜欢Java开发或者是想要参加Java培训学习的小伙伴们分享一些Java技能干货,那就是Java阐述jdba操作数据库的步骤,废话不多说了,随小编一起来看一下 ...

  9. java完整JDBC操作数据库

    java使用JDBC操作数据库的包含以下7个主要步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...

  10. 说说JDBC 操作数据库的步骤?

    分析&回答 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. ...

最新文章

  1. Educational Codeforces Round 84 (Rated for Div. 2) A~ ESZU cf集训
  2. PHP随手记1--内置函数date
  3. 全双工和半双工的区别
  4. Android代码设置角标,Android上的Badge,快速实现给应用添加角标
  5. Haproxy+Rabbitmq中的问题
  6. java restful中文乱码_使用RestTemplate访问RESTful服务乱码处理
  7. PTA5-1 最大子列和问题
  8. 使用SqlBulkCopy 批量操作大量数据
  9. java 接口返回不带双引号_Java入门:基础知识
  10. 大型强子对撞机再次遭遇断电
  11. 影响下载速度的因素--总结
  12. 技巧 | 把光驱拆了,装个固态硬盘,让渣渣电脑复活
  13. Hadoop的序列化和反序列化
  14. 安卓模拟器按键_超好用的网易MuMu安卓模拟器(兼容MacOS10.15系统)
  15. prometheus告警
  16. 技巧:Vimdiff 使用
  17. 网吧XP无盘系统集成优化及母盘封装
  18. 韩顺平Java学习 泛型
  19. 信息系统项目管理师文件夹
  20. 医学计算机应用基础考纲,计算机应用基础考纲

热门文章

  1. 由浅入深玩转华为WLAN—24 客户端(STA)黑白名单限制无线客户端接入
  2. 搞笑幽默get技能,调侃,好网站
  3. 超级假日: Dewar’s帝王威士忌,陪你度过
  4. 《延禧攻略》那些你不知道的红与黑
  5. C++将字符串中的小写字母转换成大写字母
  6. cube escape语言设置_立方逃脱:洞穴_Cube Escape系列你可能不知道的_安卓应用游戏下载- AppChina应用汇...
  7. Java JDK Unsafe
  8. 东营市胜利第一中学2015年自主招生工作实施方案
  9. mysql数据库常用查询
  10. 华为p8是android,有效利用华为P8的这些设置