mybatis入门配置案例

xiaoxiao2021-02-28  14

一、配置数据库

0.导入jar包

将数据库配置文件放到JDBC.properties中

在src下创建conf.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> <!-- 数据源的加载 --> <!-- 加载数据库配置信息 JDBC.properties: driverClassName=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\:3306/mydb user=root password=root --> <properties resource="JDBC.properties"></properties> <environments default="development"> <!--environment 表示一个数据库连接 可以配置多个数据库连接 --> <environment id="development"> <!--transactionManager 事务管理器 两种type类型 一般选择 JDBC --> <transactionManager type="JDBC" /> <!-- 数据源 --> <!-- jdbc四大连接参数 --> <dataSource type="POOLED"> <!-- 驱动名称 --> <property name="driver" value="${driverClassName}" /> <!-- url请求地址 --> <property name="url" value="${url}" /> <property name="username" value="${user}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <mappers> <!-- 映射注册 include --> <!-- resource 全路径 --> <mapper resource="cn/wang/domain/UserMapper.xml" /> </mappers> </configuration>

二、配置实例类映射

1.XML方式实现

(1)定义SQL映射XML文件 文件名一般为 XxxMapper.xml e.g.:UserMapper.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"> <!-- 表与类的映射文件 --> <!-- namespace 命名空间 唯一 :格式 :当前文件所在包名+映射文件去掉后缀的文件名 (类名) --> <mapper namespace="cn.wang.domain.UserMapper"> <!-- id标识 语句的唯一性 --> <!-- resultType 全类名 --> <select id="findAll" resultType="cn.wang.domain.User"> SELECT * FROM t_user </select> <!-- add添加 --> <!-- parameterType表示参数类型 全类名 --> <!-- 设置参数 用#{属性名称}表示值的获取 --> <insert id="add" parameterType="cn.wang.domain.User"> insert into t_user (username,password,adress) values(#{username},#{password},#{adress}) </insert> <delete id="deleteById" parameterType="java.io.Serializable"> delete from t_user where uid=#{uid} </delete> <update id="update" parameterType="cn.wang.domain.User"> update t_user set username=#{username},password=#{password},adress=#{adress} where uid=#{uid} </update> <select id="findById" resultType="cn.wang.domain.User" parameterType="java.io.Serializable"> select * from t_user where uid=#{uid} </select> </mapper>

(2)在配置文件conf.xml中注册映射接口

<mappers> <!-- 映射注册 include --> <!-- resource 全路径 --> <mapper resource="cn/wang/domain/UserMapper.xml" /> </mappers>

2.注解方式实现

在方法上添加注解

package cn.wang.dao; import java.io.Serializable; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import cn.wang.domain.User; public interface UserDao { @Select("SELECT * FROM t_user") List<User> findAll(); @Insert("insert into t_user(username,password,adress) values(#{username},#{password},#{adress})") void add(User user); @Delete("delete from t_user where uid=#{uid}") void deleteById(Serializable id); @Update("update t_user set username=#{username},password=#{password},adress=#{adress} where uid=#{uid}") void update(User user); @Select("select * from t_user where uid=#{uid}") User findById(Serializable id); }

三、编写utils类

package cn.wang.utils; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtils { private static SqlSessionFactory sessionFactory=null; static{ //读取配置文件 InputStream in=MyBatisUtils.class.getResourceAsStream("/conf.xml"); //获取sessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(in); } public static SqlSession getSession(){ //获取session return sessionFactory.openSession(); } }

四、mybatis实现crud

package cn.wang.dao; import java.io.Serializable; import java.util.List; import org.apache.ibatis.session.SqlSession; import cn.wang.domain.User; import cn.wang.utils.MyBatisUtils; public class UserDaoImpl implements UserDao { @Override public List<User> findAll() { // 获取session SqlSession session = MyBatisUtils.getSession(); // 获取mapper UserDao mapper = session.getMapper(UserDao.class); // 查询所有用户 List<User> list = mapper.findAll(); // 关闭资源 session.close(); // 返回结果 return list; } @Override public void add(User user) { // 获取session SqlSession session = MyBatisUtils.getSession(); // 获取mapper UserDao mapper = session.getMapper(UserDao.class); // 添加用户 mapper.add(user); // 提交事务 session.commit(); // 关闭资源 session.close(); } @Override public void deleteById(Serializable id) { // 获取session SqlSession session = MyBatisUtils.getSession(); // 获取mapper UserDao mapper = session.getMapper(UserDao.class); // 删除用户 mapper.deleteById(id); // 提交事务 session.commit(); // 关闭资源 session.close(); } @Override public void update(User user) { // 获取session SqlSession session = MyBatisUtils.getSession(); // 获取mapper UserDao mapper = session.getMapper(UserDao.class); // 修改用户 mapper.update(user); // 提交事务 session.commit(); // 关闭资源 session.close(); } @Override public User findById(Serializable id) { // 获取session SqlSession session = MyBatisUtils.getSession(); // 获取mapper UserDao mapper = session.getMapper(UserDao.class); // 根据ID查询 User user=mapper.findById(id); // 关闭资源 session.close(); return user; } }
转载请注明原文地址: https://www.6miu.com/read-1099999.html

最新回复(0)