4、Spring+MyBatis增删改查
0、oracle数据库脚本
create table userinfo
(id number(4),
name varchar2(50),
password varchar2(20
telephone varchar2(15),
isadmin varchar2(5)); --4.2 用户表序列
create sequence seq_userinfo;
alter table userinfo add constraint pk_userinfo_id primary key(id); insert into userinfo values(seq_userinfo.nextval,'holly','','134518024
','是');
commit;
userinfo.sql
1、创建如下项目结构


2、在com.bean包下创建UserInfo.java
package com.bean;
public class UserInfo {
private Integer id;
private String name;
private String password;
private String telephone;
private String isadmin;
public UserInfo() {
}
public UserInfo(Integer id, String name, String password, String telephone,
String isadmin) {
this.id = id;
this.name = name;
this.password = password;
this.telephone = telephone;
this.isadmin = isadmin;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getIsadmin() {
return isadmin;
}
public void setIsadmin(String isadmin) {
this.isadmin = isadmin;
}
@Override
public String toString() {
return "UserInfo [id=" + id + ", isadmin=" + isadmin + ", name=" + name
+ ", password=" + password + ", telephone=" + telephone + "]";
}
}
UserInfo.java
3、在com.dao包下创建UserInfoDao.java
package com.dao; import java.util.List; import com.bean.UserInfo;
/**
* mybatis映射文件的dao接口
* @author pc
*
*/
public interface UserInfoDao {
public List<UserInfo> findAll(); //查所有
public UserInfo findUser(UserInfo user);//条件查询
public void insertUser(UserInfo user); //插入对象
public void updateUser(UserInfo user); //修改对象
public void deleteUser(int id); //条件删除 }
UserInfoDao.java
4、在com.dao包下创建UserInfoDao.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dao.UserInfoDao">
<select id="findAll" resultType="user">
select * from userinfo
</select>
<select id="findUser" resultType="user" parameterType="user">
select * from userinfo where name=#{name} and password=#{password}
</select>
<insert id="insertUser" parameterType="user">
insert into userinfo values(seq_userinfo.nextval,#{name},#{password},#{telephone},#{isadmin})
</insert>
<update id="updateUser" parameterType="user">
update userinfo set name=#{name},password=#{password},telephone=#{telephone},isadmin=#{isadmin} where id=#{id}
</update> <delete id="deleteUser" parameterType="int">
delete from userinfo where id=#{id}
</delete>
</mapper>
UserInfoDao.xml
5、在src包下创建mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
<!-- mybatis映射文件的别名配置 -->
<typeAliases>
<typeAlias type="com.bean.UserInfo" alias="user"/>
</typeAliases> <!-- 注册mybatis的映射文件 -->
<mappers>
<mapper resource="com/dao/UserInfoDao.xml"/>
</mappers>
</configuration>
mybatis-config.xml
6、在com.dao.impl包下创建UserInfoDaoImpl.java
package com.dao.impl; import java.util.List; import org.mybatis.spring.SqlSessionTemplate; import com.bean.UserInfo;
import com.dao.UserInfoDao;
/**
* 数据dao接口实现类
* @author pc
*
*/
public class UserInfoDaoImpl implements UserInfoDao {
private SqlSessionTemplate sqlSession;
/**
* 根据id删除
*/
public void deleteUser(int id) {
//获取代理对象
UserInfoDao dao=sqlSession.getMapper(UserInfoDao.class);
try {
dao.deleteUser(id); //调用代理对象映射的dao接口删除
sqlSession.commit(); //提交事务
System.out.println("删除成功");
} catch (Exception e) {
System.out.println("删除失败");
e.printStackTrace();
}
}
/**
* 查询所有
*/
public List<UserInfo> findAll() {
//获取代理对象
UserInfoDao dao=sqlSession.getMapper(UserInfoDao.class);
List<UserInfo> list=null;
try {
list=dao.findAll();
System.out.println("查询所有成功");
} catch (Exception e) {
System.out.println("查询所有失败");
e.printStackTrace();
}
return list;
} /**
* 条件查询
*/
public UserInfo findUser(UserInfo user) {
//获取代理对象
UserInfoDao dao=sqlSession.getMapper(UserInfoDao.class);
UserInfo userinfo=null;
try {
if(user!=null){
userinfo=dao.findUser(user);
System.out.println("条件查询成功");
}else{
System.out.println("条件查询参数为空");
}
} catch (Exception e) {
System.out.println("条件查询失败");
e.printStackTrace();
}
return userinfo;
}
/**
*添加
*/
public void insertUser(UserInfo user) {
//获取代理对象
UserInfoDao dao=sqlSession.getMapper(UserInfoDao.class);
try {
if(user!=null){
dao.insertUser(user);
sqlSession.commit(); //提交事务
System.out.println("添加成功");
}else{
System.out.println("添加参数为空");
}
} catch (Exception e) {
System.out.println("添加失败");
e.printStackTrace();
} }
/**
* 修改对象
*/
public void updateUser(UserInfo user) {
//获取代理对象
UserInfoDao dao=sqlSession.getMapper(UserInfoDao.class);
try {
if(user!=null){
dao.updateUser(user);
sqlSession.commit(); //提交事务
System.out.println("修改成功");
}else{
System.out.println("修改参数为空");
}
} catch (Exception e) {
System.out.println("修改失败");
e.printStackTrace();
}
}
public SqlSessionTemplate getSqlSession() {
return sqlSession;
}
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
} }
UserInfoDaoImpl.java
7、在com.service包下创建UserInfoService.java
package com.service; import java.util.List; import com.bean.UserInfo;
/**
* 服务接口
* @author pc
*
*/
public interface UserInfoService {
public List<UserInfo> findAll(); //查所有
public UserInfo findUser(UserInfo user);//条件查询
public void insertUser(UserInfo user); //插入对象
public void updateUser(UserInfo user); //修改对象
public void deleteUser(int id); //条件删除 }
UserInfoService.java
8、在com.service.impl包下创建UserInfoServiceImpl.java
package com.service.impl; import java.util.List; import com.bean.UserInfo;
import com.dao.UserInfoDao;
import com.dao.impl.UserInfoDaoImpl;
import com.service.UserInfoService; public class UserInfoServiceImpl implements UserInfoService{
//引入数据层接口
UserInfoDao dao=new UserInfoDaoImpl();
/**
* 删除
*/
public void deleteUser(int id) {
dao.deleteUser(id);
}
/**
* 查所有
*/
public List<UserInfo> findAll() {
return dao.findAll();
}
/**
* 条件查询
*/
public UserInfo findUser(UserInfo user) {
return dao.findUser(user);
}
/**
* 插入对象
*/
public void insertUser(UserInfo user) {
dao.insertUser(user);
}
/**
* 修改对象
*/
public void updateUser(UserInfo user) {
dao.updateUser(user);
} public UserInfoDao getDao() {
return dao;
}
public void setDao(UserInfoDao dao) {
this.dao = dao;
} }
UserInfoServiceImpl.java
9、在src下创建applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
<!-- 1.配置数据源 -->
<bean id="oracleDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean> <!--2.在sqlSessionFactory中注入数据源 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据源 -->
<property name="dataSource" ref="oracleDataSource"/> <!-- 引用mybatis的主配置文件,(注册dao映射文件) -->
<property name="configLocation">
<value>classpath:mybatis-config.xml</value>
</property>
</bean> <!-- 3.用构造获取sqlSessionTemplate -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactory"/>
</bean> <!-- 4.dao注入sqlSesson -->
<bean id="userdao" class="com.dao.impl.UserInfoDaoImpl">
<property name="sqlSession" ref="sqlSessionTemplate"/>
</bean> <!-- 5.service注入dao -->
<bean id="servicedao" class="com.service.impl.UserInfoServiceImpl">
<property name="dao" ref="userdao"/>
</bean>
</beans>
applicationContext.xml
10、在com.test包下创建Test.java
package com.test; import java.util.List; import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.bean.UserInfo;
import com.service.impl.UserInfoServiceImpl; public class Test { /**
* @param args
*/
public static void main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
UserInfoServiceImpl serviceImpl=(UserInfoServiceImpl) ac.getBean("servicedao");
List<UserInfo> list=serviceImpl.findAll();
if(list!=null){
for (UserInfo user : list) {
System.out.println(user);
}
}else{ } } }
Test.java
11、运行效果:

4、Spring+MyBatis增删改查的更多相关文章
- MyBatis增删改查模板
1. 首先,和Spring整合一下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=& ...
- 最简单的mybatis增删改查样例
最简单的mybatis增删改查样例 Book.java package com.bookstore.app; import java.io.Serializable; public class Boo ...
- MyBatis增删改查
MyBatis的简介: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...
- 【Mybatis】简单的mybatis增删改查模板
简单的mybatis增删改查模板: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...
- Mybatis增删改查,Demo整合
第一步:MyBatis的Jar包引入mybatis-3.2.7.jarmysql-connector-java-5.1.8.jar MyBatis的pom.xml依赖 <dependencies ...
- springboot整合mybatis增删改查(四):完善增删改查及整合swgger2
接下来就是完成增删改查的功能了,首先在config包下配置Druid数据连接池,在配置之前先把相关配置在application.preperties中完善 application.preperties ...
- SpringBoot+Mybatis增删改查实战
简介 SpringBoot和Mybatis是啥请自行百度,作者这里也是花了几天时间入门了这个框架用来完成任务,并且也算符合要求的完成了任务,期间也各种百度但是没找到自己想要的那种简单易懂的教程,所以踩 ...
- springboot&mybatis 增删改查系列(二)
数据库篇 我的数据库名为data0525,数据表名为user,其中有五列uid,uname,upass,usex,umessage.uid为主键并且自动生成,由于是练习表,所以并没有考虑设计的合理性. ...
- springboot2之结合mybatis增删改查解析
1. 场景描述 本节结合springboot2.springmvc.mybatis.swagger2等,搭建一个完整的增删改查项目,希望通过这个基础项目,能帮忙朋友快速上手springboot2项目. ...
随机推荐
- TypeScript 学习三 类
1,类: 类是TypeScript的核心,大部分代码都是写在类里面: 声明:class 类名{ 属性: 方法(){}:} 注意:类名首字母同样大写,但是方法不需要表明类型,直接写方法名加()即可:属 ...
- CentOS 7安装Teamviewer 12
1 下载teamviewer 12的rpm包 方法一:访问官网 https://www.teamviewer.com/en/download/linux/ 方法二:wget https://downl ...
- NOIP2014-提高组初赛C语言解析(选择填空题)
第二十届全国青少年信息学奥林匹克联赛初赛 一.单项选择题(共 20 题,每题 1.5 分,共计 30 分.每题有且仅有一个正确选项) 1. 以下哪个是面向对象的高级语言( B ) A.汇编语言 B ...
- NVIC
1中断:每一个中断都会对应一个服务程序 2NVIC 他的做用是负责中断优先级管理 3IP bit[7:4]每一个中断都有一个IP寄存器,用于设置中断相关的属性 AIRCR[10:8]只一个AIRCR寄 ...
- 微信小程序文档解读(一)--api提供支持有哪些
本文重点在于小程序API提供的微信功能支持及获取用户信息的解读,具体的用法和调用不在本文讨论范围之内,文章基于20161222版文档解读 API官方文档原文链接 小程序API官方定义: 框架提供丰富的 ...
- Python笔记6(异常)-20160924
1. NameError 当视图访问一个未定义的变量则会发生NameError.
- curl的简单使用步骤
要使用cURL来发送url请求,具体步骤大体分为以下四步: 1.初始化2.设置请求选项3.执行一个cURL会话并且获取相关回复4.释放cURL句柄,关闭一个cURL会话 // 1. 初始化一个cURL ...
- 安装TensorFlow的步骤
安装步骤: 1.安装虚拟机: 2.安装liunx系统: 3.安装TensorFlow. 1.安装虚拟机:虚拟机的版本是不能太低的.我使用的是:VMware-workstation-full-12.0. ...
- Hadoop Datanode 机器缺失 VD 问题修复尝试
背景: 新集群 Datanode 使用两个 SSD 做 raid 1 作为根磁盘,12 个 SAS 单独做 raid 0 作为数据盘,在机器部署完毕后,缺发现 PD slot 4 和 slot 5 丢 ...
- 为Textview里面的ImageSpan添加点击响应事件
对于图文混排的TextView,用户在浏览到里面的图片的时候,往往有点击图片preview大图或者preview之后保存图片的需求,这就需要为Textview里面的ImageSpan设置点击响应事件. ...