mybatis完整增删改查入门实例
2023-09-14 09:01:58 时间
mybatis完整增删改查入门实例
编程步骤
①创建Java工程。
②导入jar包。
③创建sqlMapConfig.xml配置文件,这是mybatis的入口。
④创建数据库,数据库表user_c,插入测试记录。
⑤创建PO对象user.java.
⑥创建映射文件user.xml.
⑦创建测试类。
mybatis的占位符
#{遵循Java变量名规范的名称均可}
导入核心jar包
mybatis-3.2.2.jar
依赖jar包
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
核心配置文件sqlMapConfig.xml
事务:JDBC/MANAGED
数据源:UNPOOLED/POOLED/JNDI
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/nwtxxb/mybatis/domain/User.xml"/>
</mappers>
</configuration>
创建数据库
创建mybatisdb数据库,创建User表。
sql语句:
create table USER_C
(
ID varchar(40) not null,
NAME varchar(30),
AGE int,
ADDRESS varchar(200),
primary key (ID)
);
insert into `user_c`(`id`,`name`,`age`,`address`)
values ('1','夏言',73,'桂州村'),
('2','严嵩',87,'分宜县城介桥村'),
('3','徐阶',80,'明松江府华亭县'),
('4','高拱',66,'河南省新郑市高老庄村'),
('5','张居正',58,'江陵');
配置映射文件User.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="cn.nwtxxb.mybatis">
<!-- 替代,语句中的内容,简写 -->
<sql id="cols">
id,name,age,address
</sql>
<!-- 查询所有记录 -->
<select id="listAll" resultType="cn.nwtxxb.domain.User">
select <include refid="cols"/> from user_c
</select>
<!-- 查询一个用户 --> <!-- 别名替代,简写-->
<select id="getOne" parameterType="string" resultType="aliasesUser">
select <include refid="cols"/> from user_c where id= #{id}
</select>
<!-- 插入一个用户 -->
<insert id="insertOne" parameterType="cn.nwtxxb.domain.User" >
insert into user_c( <include refid="cols"/> ) values (#{id},#{name},#{age},#{address})
</insert>
<!-- 更新一个用户 -->
<insert id="updateOne" parameterType="cn.nwtxxb.domain.User" >
update user_c set name=#{name},age=#{age},address=#{address} where id=#{id}
</insert>
<!-- 删除一个用户 -->
<update id="deleteOne" parameterType="cn.nwtxxb.domain.User" >
delete from user_c where id= #{id}
</update>
</mapper>
PO对象User.java
package cn.nwtxxb.domain;
public class User {
private String id;
private String name;
private Integer age;
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
测试类
package cn.nwtxxb.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.UUID;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import cn.nwtxxb.domain.User;
public class TestMybatis {
SqlSessionFactory sqlSessionFactory;
@Before
public void initFactory() throws IOException
{
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testListAll()
{
SqlSession session=sqlSessionFactory.openSession();
List<User> users=session.selectList("cn.nwtxxb.mybatis.listAll");
System.out.println(users.size());
}
@Test
public void testQueryOne()
{
SqlSession session=sqlSessionFactory.openSession();
User user=session.selectOne("cn.nwtxxb.mybatis.getOne", 1);
System.out.println(user);
}
//事务需要程序员处理
@Test
public void testInsertOne()
{
User u=new User();
u.setId(UUID.randomUUID().toString());
u.setName("sbsbb");
u.setAge(18);
u.setAddress("china");
SqlSession session=sqlSessionFactory.openSession();
int count=session.insert("cn.nwtxxb.mybatis.insertOne", u);
session.commit();
System.out.println(count);
}
@Test
public void testUpdateOne()
{
SqlSession session=sqlSessionFactory.openSession();
User u=new User();
//u=session.selectOne("cn.nwtxxb.mybatis.getOne", "2");
u.setId("2");
u.setName("clclclclclcfei");
u.setAge(100);
u.setAddress("USA");
int count=session.update("cn.nwtxxb.mybatis.updateOne", u);
session.commit();
System.out.println(count);
}
@Test
public void testDeleteOne()
{
SqlSession session=sqlSessionFactory.openSession();
User u=new User();
u.setId("2");
int count=session.delete("cn.nwtxxb.mybatis.deleteOne", u);
session.commit();
System.out.println(count);
}
}
相关文章
- 深入理解mybatis原理(五) MyBatis缓存机制的设计与实现
- MyBatis框架:第五章:源码解析及Mapper接口方式的mybatis的增,删,改,查实现
- MyBatis框架:第六章:mybatis的核心配置
- MyBatis框架:第十章:mybatis缓存
- MyBatis框架:第六章:mybatis的核心配置
- SpringBoot数据库源码解析Template实例化操作
- 怎么删除iis和重装iis_iis未将对象引用设置到对象的实例
- SQL窗口函数OVER用法实例整理
- MyBatis学习总结(七)——Mybatis缓存详解编程语言
- mybatis 详解(三)——入门实例(基于注解)编程语言
- Spring+Mybatis+Maven+MySql搭建实例详解编程语言
- Mybatis操作MySQL存储过程实现数据库交互(mybatis调用mysql存储过程)
- Oracle触发器权限:实现实例安全性(oracle触发器权限)
- Redis开发实战:从入门到精通(redis开发实例)
- MySQL使用实例:构建实时高效的数据库(mysql实例数据库)
- mssql触发器实现实例:让你的数据库更加安全(mssql 触发器 实例)
- 实例Oracle监听实现多实例负载均衡(oracle监听多个)
- 简易搭建Mybatis连接Oracle数据库(mybatis连接oracle)
- C#打印出正等腰三角形实例代码
- javascript重写alert方法的实例代码
- c语言常见图片格式判断实例
- jquery图片缩放拖动的简单实例
- C#Memcached缓存用法实例详解
- mysqlselect语句操作实例
- python字典多条件排序方法实例
- C#数组反转与排序实例分析