helloWord级别的mybatis增删改查,入门必备
源代码清单:
1)、:需要导入的包:(之后如果有需要我会想办法发到连接)
目录结构:
2)、主配置文件mybatis-config
<?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/testdb"/>
<property name="username" value="root"/>
<property name="password" value="302501"/>
</dataSource>
</environment>
</environments>
<!-- 指定xml文件 -->
<mappers>
<mapper resource="UserDao.xml"/>
</mappers>
</configuration>
3)、User类:以及UserDao接口和UserDao.XML文件,接口用来定义方法,XML文件实现方法
User类:
package com.xiaoming.bean;
public class User {
Integer id;
String uname;
Integer gender;
public User(){
}
public User(String uname, int gender) {
super();
this.uname = uname;
this.gender = gender;
}
public User(Integer id, String uname, Integer gender) {
super();
this.id = id;
this.uname = uname;
this.gender = gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public String toString() {
return "User [id=" + id + ", uname=" + uname + ", gender=" + gender
+ "]";
}
}
UserDao接口
package com.xiaoming.dao;
import com.xiaoming.bean.User;
public interface UserDao {
public User getUserById(Integer id);
public int insertUser(User user);
public int updateUser(User user);
public int deleteUser(Integer id);
}
userDao.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.xiaoming.dao.UserDao">
<select id="getUserById" resultType="com.xiaoming.bean.User">
select * from Usero where id = #{id}
</select>
<insert id="insertUser">
insert into Usero(uname,gender) value(#{uname},#{gender})
</insert>
<update id="updateUser">
update Usero
set uname=#{uname},gender=#{gender}
where id=#{id}
</update>
<delete id="deleteUser">
DELETE FROM Usero WHERE id=#{id}
</delete>
</mapper>
4)、以及log4j日志文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="info" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
4)、总测试文件:
package com.xiaoming.test;
import java.io.IOException;
import java.io.InputStream;
import java.nio.channels.SeekableByteChannel;
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 com.xiaoming.bean.User;
import com.xiaoming.dao.UserDao;
public class TestDao {
SqlSessionFactory sessionFactory;
//测试删除
@Test
public void deleteUser(){
SqlSession openSession = sessionFactory.openSession();
try {
UserDao userDao = openSession.getMapper(UserDao.class);
int user = userDao.deleteUser(3);
System.out.println(user);
openSession.commit();
} finally{
openSession.close();
}
}
//测试修改
@Test
public void updateUser(){
SqlSession openSession = sessionFactory.openSession();
try {
UserDao userDao = openSession.getMapper(UserDao.class);
int user = userDao.updateUser(new User(3, "小美", 1));
System.out.println(user);
openSession.commit();
} finally{
openSession.close();
}
}
//测试插入
@Test
public void insertUser(){
SqlSession openSession = sessionFactory.openSession();
try {
UserDao userDao = openSession.getMapper(UserDao.class);
int user = userDao.insertUser(new User(null,"小紅",0));
System.out.println(user);
openSession.commit();
} finally{
openSession.close();
}
}
//测试查询
@Test
public void selectUser() {
//2、获取回话
SqlSession openSession = sessionFactory.openSession();
//3、调用getmapper获取dao借口
try {
UserDao user = openSession.getMapper(UserDao.class);
User ui= user.getUserById(1);
System.out.println(ui);
} finally{
openSession.close();
}
}
//在其他Test运行之前执行这个初始化建工厂操作
@Before
public void restart() throws IOException{
//1、构建sqlsessionfactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
}
运行结果:(运行结果贴图)
1)、增:(insert)
表初始数据:
现在增加一条:运行insertuser的test
可以看到,插入成功:
回看表:
插入成功,因为前面测试删了几条数据,自增到7了
2)、查:(select)
测试查询id为1的,成功返回
测试7号:
同样没问题
3)、改:(update)
因为数据库测试数据变动,先把测试语句的id改为表中有的:
int user = userDao.updateUser(new User(7, "小美", 1));
然后更新:
更新成功:
查看数据库:
表已更改
也可以直接测试查询查看
成功;
4、删:(delete)
删除小美字段,先改代码id:
int user = userDao.deleteUser(7);
删除:
删除成功:
表里面只有这一条数据了
好了,以下就是入门mybatis的全部过程了