首页 > 代码库 > mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口

mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口

搭建项目

一:lib(关于框架的jar包和数据库驱动的jar包)

1,第一步:先把mybatis的核心类库放进lib里

技术分享

 

2,第二步:导入第三方类库(在lib里)。mybatis的核心类库在运行时还依赖一些第三方类库

3,第三步:导入连接数据库驱动jar包

技术分享


 

二:创建mybatis的配置文件

1,第一步:先创建实体包,对照着表结构把实体类写出来。封装好就是写get,set方法------不像hibernate,可以自动的将表名字段名与实体类相对应,不用自己手写实体类与映射文件

2,第二步:创建xml文件,文件名可以随便写,这里参考hibernate的规范写法:mybatis.cfg.xml

      不需要next,因为myeclipse没有内置mybatis的文档声明

3,配置文件由四部分组成:

(1)配置日志

技术分享

(2)配置类型别名

把经常要用到的类设置别名,后面就可以使用别名,可简化代码---自定义实体类设置别名

技术分享

(3)配置数据库连接和事务管理器

技术分享

(4)导入映射文件

 

完整的配置文件如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>	<!--  设置mtbatis的一些运行参数:日志,是直接输出到控制台上还是输出到log4j文件中 -->	<settings>		<!-- name不可以随便写,只能叫这个名字;value有好几个选项这里选择向控制台输出 -->		<setting name="logImpl" value="http://www.mamicode.com/STDOUT_LOGGING"/>	</settings>		<!--设置类型别名:在执行sql语句的时候,如果不设置别名。每次在指定的时候都需要包名+类名,得写的长 -->	<typeAliases>		<!-- type就是完整实体类名, -->		<tapeAlias type="cn.bdqn.mybatis.entity.User" alias="User"/>	</typeAliases>		<!--数据库连接的属性,不同的开发阶段连接不同的数据库		开发阶段——开发环境:连接程序员自己的数据库	测试阶段——测试环境:连接测试数据库	上线运行——生产环境:连接正式数据库		里边可以写多个environment	-->	<environments default="dev">		<!-- 开发环境 -->		<environment id="dev">		<!-- 通过JDBC管理事务 -->		<transactionManager type="JDBC"/>		<!--不使用连接池  -->		<dataSource type="UNPOOLED">							<property name="driver" value="http://www.mamicode.com/com.mysql.jdbc.Driver"/>			<property name="url" value="http://www.mamicode.com/jdbc:mysql://localhost:3306:Test"/>			<property name="username" value="http://www.mamicode.com/test"/>			<property name="password" value="http://www.mamicode.com/123456"/>		</dataSource>		</environment>	</environments>		<!--sql映射文件的路径-->	<mappers>		<!-- 引入要加载的sql文件 -->		<mapper resource="cn/bdqn/mybatis/mapper/User.sql.xml"/>	</mappers></configuration>

                                                编写工具类

package cn.bdqn.mybatis.util;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {	private static SqlSessionFactory sessionFactory;	static{		try {			//获得用来加载配置文件的输入流  字符流			Reader reader=Resources.getResourceAsReader("mybatis.cfg.xml");			//构建器,通过它			SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();			sessionFactory=builder.build(reader);											} catch (Exception e) {			e.printStackTrace();		}	}			public static SqlSession getSqlSession(){		return sessionFactory.openSession(true);	}}

 

 


 

                                     映射文件

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bdqn.mybatis.mapper.UserMapper">	<insert id="addUser" parameterType="User">		INSERT INTO User(userName,password,email) VALUES		(#{userName},#{password},#{email})	</insert>		<select id="getUser" resultType="User">		SELECT id,userName,password,email FROM User WHERE id=#{id}			</select>		<select id="findUser" resultType="User">		SELECT id,userName,password,email FROM User ORDER BY id;	</select>		<update id="updateUser" parameterType="User">		UPDATE User SET userName=#{userName},password=#{password},email=#{email} WHERE id=#{id}	</update>		<delete id="delUser" >		DELETE FROM User WHERE id=#{id}	</delete></mapper>

 

                                   mapper接口

 

 

package cn.bdqn.mybatis.mapper;import java.util.List;import cn.bdqn.mybatis.entity.User;//通过接口里边的抽象方法来调用对应的语句//接口对应映射文件----把SQL语句的命名空间设置成接口的完整类名//相当于原来dao层,我只需要定义dao接口,那具体的实现类现在不用咱自己写了,只需拿到mapper接口类即可   省了很多事,提高开发效率public interface UserMapper {	public int addUser(User user);		public User getUser(Integer id);		public List<User> findUser();		public int updateUser(User user);		public void delUser(Integer id);}

 

          测试类

 

第一种调用sql语句的方法
//保存一个用户
int rows=session.insert("User.addUser",user);//根据id获取一个用户user=session.selectOne("User.getUser",2);

第二种最常用的调用sql语句的方法:定义一个mapper接口    mapper接口中,返回值类型,参数,得相对应;方法名与sql语句id相一致
//先告诉session;后session根据mapper的class找到了命名空间

UserMapper mapper=session.getMapper(UserMapper.class);
            int rows=mapper.addUser(user);

 

mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口