您的位置:首页 > 其它

创建MyBatis基础框架和测试

2017-06-30 17:39 288 查看

1项目基础架构图

2.maven导入基础jar包

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>3.1.13</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>

3创建实体类和方法接口

public class User {
private int id;
private String username;
private String age;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}
}
public interface IUserDao {
//获取所有信息
public List<User> getAllUsers();
//根据ID获取信息
public User getOneUser(int id);
public User getUserResultMap(int id);
}

4.创建config.properties

config.username=root
config.password=187901
config.driver=com.mysql.jdbc.Driver
config.url=jdbc:mysql://localhost:3306/Frist

5创建log4j.properties

### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的日志到=E://logs/error.log ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = C://Users/admin/Desktop/New/Y2/MyBatis/debug.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 输出ERROR 级别以上的日志到=E://logs/error.log ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =C://Users/admin/Desktop/New/Y2/MyBatis/error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORlog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]

6核心配置文件(MyBatis-config.xml)

<?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><!--根节点--><!--导入config文件--><properties resource="config.properties"></properties><!--别名的设定--><typeAliases><!--用你指定的该包中的简单类名作为别名  Dept Emp  Order UserInfo OrderDetail--><package name="cn.mbb.Entity"></package><!-- <typeAlias type="cn.happy.entity.Dept" alias="Dept"></typeAlias>--></typeAliases><environments default="development">  <!--环境--><environment id="development"><transactionManager type="JDBC"/><!--事务管理机制:JDBC|Managed--><dataSource type="POOLED">  <!--UNPooled,JNDI--><property name="driver" value="${config.driver}"/><property name="url" value="${config.url}"/><property name="username" value="${config.username}"/><property name="password" value="${config.password}"/></dataSource></environment></environments><mappers><mapper resource="User.xml"/></mappers></configuration>

7创建SQL映射文件(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.mbb.Dao.IUserDao"><!--简单的查询--><select id="getAllUsers"  resultType="User">SELECT * FROM user_info</select><!--按条件查询--><select id="getOneUser" parameterType="int" resultType="User">select * from user_info WHERE id=#{id}</select><!--按条件查询使用resultMap--><select id="getUserResultMap" parameterType="int" resultMap="userResultMap">select * from user_info WHERE id=#{id}</select><resultMap id="userResultMap" type="User"><id property="id" column="id"></id><result property="username" column="username"></result></resultMap></mapper>

8编写测试类

package cn.mbb.Dao;import cn.mbb.Entity.User;import com.sun.org.apache.bcel.internal.generic.IUSHR;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.Test;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.util.List;/*** Created by admin on 2017/6/30.*/public class UserTest {//01.带条件查询  resultMap的使用@Testpublic void testGetOneDeptResultMap(){System.out.println("===========================");String path="mybatis-config.xml";try {InputStream is= Resources.getResourceAsStream(path);SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);SqlSession session =  factory.openSession();IUserDao dao = session.getMapper(IUserDao.class);User user  = dao.getUserResultMap(1);System.out.println(user.getUsername());} catch (IOException e) {e.printStackTrace();}}@Testpublic void testOneUser(){System.out.println("===========================");String path="mybatis-config.xml";try {InputStream is= Resources.getResourceAsStream(path);SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);SqlSession session =  factory.openSession();IUserDao dao = session.getMapper(IUserDao.class);User  user=  dao.getOneUser(1);System.out.println(user.getUsername());} catch (IOException e) {e.printStackTrace();}}@Testpublic void testall() throws IOException {//读取myba-config.xml文件信息String path="mybatis-config.xml";InputStream is= Resources.getResourceAsStream(path);//构建sqlSessionFactory对象SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);//创建SQLSession对象SqlSession sqlSession = factory.openSession();List<User> list = sqlSession.selectList("cn.mbb.Dao.IUserDao.getAllUsers");4000for (User user:list) {System.out.println(user.getUsername());}}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: