mybatis使用Mapper接口方式与sqlSession传sqlID方式基本配置
来源:互联网 发布:剑三冷艳军娘捏脸数据 编辑:程序博客网 时间:2024/06/16 09:18
下面代码写的很乱,也没什么解释,只是留给我自己这个初学者,以后如果需要,方便查看配置。
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> <!-- 引入外部配置文件 --> <properties resource="mysql.properties"></properties> <!-- 为JAVA Bean起类别名 --> <typeAliases> <typeAlias alias="User" type="com.cmos.itframe.entity.User" /> </typeAliases> <!-- 配置拦截器 --> <plugins> <plugin interceptor="com.cmos.itframe.interceptor.BackCntsInterceptor"> </plugin> </plugins> <!-- 配置mybatis运行环境 --> <environments default="mybatis"> <environment id="mybatis"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 配置映射文件 --> <mappers> <mapper resource="mapper/UserDao.xml"></mapper> <mapper resource="mapper/UserMapper.xml"></mapper> </mappers></configuration>
mysql.properties
#数据库连接信息jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/demodb?useUnicode=true&characterEncoding=UTF-8&useSSL=truejdbc.username=rootjdbc.password=123456
使用Mapper接口方式与使用sqlSession传sqlID方式上面的配置信息都是一样的
使用Mapper接口方式如下:
package com.cmos.itframe.dao;import com.cmos.itframe.entity.User;import org.apache.ibatis.annotations.Param;import org.springframework.stereotype.Repository;import java.util.List;/** * Created by dong on 2016/12/15. */@Repository("userDaoNoImpl")public interface UserMapper { public List<User> findUserByNameAge(@Param("username") String username1, @Param("age") int age); public void saveUser(User user); public void updatePassByName(@Param("username") String username, @Param("password") String password); public void deleteByName(@Param("username") String username);}映射文件UserMapper.xml如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cmos.itframe.dao.UserMapper"> <sql id="user_column"> username,password,age </sql> <!-- 自定义返回结果集 --> <resultMap id="User" type="User"> <result property="username" column="username" javaType="java.lang.String"></result> <result property="password" column="password" javaType="java.lang.String"></result> </resultMap> <!--根据用户名和年龄查询--> <select id="findUserByNameAge" resultMap="User"> select * from user1 where username=#{username} and age=#{age} </select> <!-- 增加用户 --> <insert id="saveUser" parameterType="User"> insert into user1 (<include refid="user_column"/>) values (#{username},#{password},#{age}) </insert> <!-- 通过用户名修改用户密码 --> <update id="updatePassByName" parameterType="String"> update user1 set password=#{password} where username=#{username} </update> <!-- 通过用户名删除用户 --> <delete id="deleteByName" parameterType="String"> delete from user1 where username=#{username} </delete></mapper>注意:【下面这几句总结参考:https://my.oschina.net/u/1757476/blog/500079】
Mapper 接口方法名 和 UserMapper.xml 中定义的每个 sql 的 id 同名。
Mapper 接口方法的输入参数类型和 UserMapper.xml 中定义的 sql parameterType 类型相同。
Mapper 接口的输出参数类型和 UserMapper.xml 中 定义的 sql 的 resultType 类型相同。
UserMapper.xml 文件中的 namespace 即是 Mapper 接口的类路径。
sqlSession传sqlID方式
package com.cmos.itframe.dao;import com.cmos.itframe.entity.User;import java.util.List;/** * Created by dong on 2016/12/15. */public interface UserDao { public List<User> getUserForList(String sqlId, User user); public void saveUser(String sqlId, User user); public void updatePassByName(String sqlId, User user); public void deleteByName(String sqlId, User user);}
package com.cmos.itframe.dao.impl;import com.cmos.itframe.dao.UserDao;import com.cmos.itframe.entity.User;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.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Repository;import java.io.IOException;import java.io.Reader;import java.util.List;/** * Created by dong on 2017/1/13. */@Repository("userDaoImpl")public class UserDaoImpl implements UserDao { private static final Logger log = LoggerFactory.getLogger(UserDao.class); private SqlSession session = DBTools.getSession("mybatis-config.xml"); public List<User> getUserForList(String sqlId, User user) { return session.selectList(sqlId, user); } public void saveUser(String sqlId, User user) { session.insert(sqlId, user); session.commit(); } public void updatePassByName(String sqlId, User user) { session.update(sqlId, user); session.commit(); } public void deleteByName(String sqlId, User user) { session.delete(sqlId, user); session.commit(); } private static class DBTools { private static SqlSession getSession(String resource) { //使用MyBatis提供的Resources类加载mybatis的配置文件 Reader reader = null; try { reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); //session.getConfiguration().addMapper(UserDao.class); return session; } private static void closeSession(SqlSession session) { session.close(); } }}
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cmos.itframe.dao.UserDao"> <sql id="user_column"> username,password,age </sql> <!-- 自定义返回结果集 --> <resultMap id="User" type="User"> <result property="username" column="username" javaType="java.lang.String"></result> <result property="password" column="password" javaType="java.lang.String"></result> </resultMap> <!--根据用户名和年龄查询--> <select id="getUserForList" resultMap="User"> select * from user1 where username=#{username} and age=#{age} </select> <!-- 增加用户 --> <insert id="saveUser" parameterType="User" > insert into user1 (<include refid="user_column"/>) values (#{username},#{password},#{age}) </insert> <!-- 通过用户名修改用户密码 --> <update id="updatePassByName" parameterType="User"> update user1 set password=#{password} where username=#{username} </update> <!-- 通过用户名删除用户 --> <delete id="deleteByName" parameterType="User"> delete from user1 where username=#{username} </delete></mapper>
这种方式增、删、改会自动开启事务,所以需要session.commit,查询不需要
sqlSession传sqlID这种方式mapper的namespace是可以很方便的自由修改的,但如果与接口类路径不同需要下面这句
session.getConfiguration().addMapper(UserDao.class);
0 0
- mybatis使用Mapper接口方式与sqlSession传sqlID方式基本配置
- Mybatis的使用(mapper接口方式)
- mybatis的mapper配置方式
- spring mybatis mapper接口注解方式注入
- spring mybatis mapper接口注解方式注入
- spring mybatis mapper接口注解方式注入
- mybatis mapper.xml路径配置方式
- spring+sprinmvc+mybatis基本整合(二)--基于spring注解mybais非注解非Mapper接口方式
- Mybatis使用Mapper代理的方式生成DAO接口的实现类对象
- Mybatis SQL语句的两种映射方式 mapper的xml配置和接口两种方式
- MyBatis中的sqlsession和Mapper
- MyBatis之 mapper代理方式
- mybatis开发Mapper代理方式
- MyBatis mapper.xml配置一对多的两种方式
- Mybatis框架Mapper代理配置的两种方式
- Mybatis 加载 Mapper配置的四种方式
- mybatis中mapper配置方式进行查询(三)
- MyBatis mapper文件中的变量引用方式#{}与${}的差别
- MTK6735+Android之按键(key)修改
- web开发时jsp中表单回显character类型的数据需注意
- [Unity]运行时用AnimatorOverrideController动态加载动画片段
- Android Studio 导入Module
- spring mvc restful java.lang.Stackoverflowerror
- mybatis使用Mapper接口方式与sqlSession传sqlID方式基本配置
- ubuntu 安装 Image PIL模块
- 排序算法基础---未完
- IOS开发-UIView之动画效果的实现方法(合集)
- Javascript中的异常处理
- input+select,输入+选择
- Error Domain=com.alamofire.error.serialization.response Code=-1016 image/jpeg application/octet-stre
- 不用任何的算数运算符实现加法
- 最短路dijkstra,floyd