Mybatis 系列1-入门
首先创建一个maven工程
jdk使用1.8
目录结构:

1、在pom文件中添加
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2、创建User实体类 com.mantishell.domain.User.java
1 public class User implements Serializable { 2 private Integer id; 3 private String name; 4 private String address; 5 private String sex; 6 private Date birthday; 7 8 @Override 9 public String toString() { 10 return "User{" + 11 "id=" + id + 12 ", name='" + name + '\'' + 13 ", address='" + address + '\'' + 14 ", sex='" + sex + '\'' + 15 ", birthday=" + birthday + 16 '}'; 17 } 18 19 public Integer getId() { 20 return id; 21 } 22 23 public void setId(Integer id) { 24 this.id = id; 25 } 26 27 public String getName() { 28 return name; 29 } 30 31 public void setName(String name) { 32 this.name = name; 33 } 34 35 public String getAddress() { 36 return address; 37 } 38 39 public void setAddress(String address) { 40 this.address = address; 41 } 42 43 public String getSex() { 44 return sex; 45 } 46 47 public void setSex(String sex) { 48 this.sex = sex; 49 } 50 51 public Date getBirthday() { 52 return birthday; 53 } 54 55 public void setBirthday(Date birthday) { 56 this.birthday = birthday; 57 } 58 59 public User(Integer id, String name, String address, String sex, Date birthday) { 60 this.id = id; 61 this.name = name; 62 this.address = address; 63 this.sex = sex; 64 this.birthday = birthday; 65 } 66 67 public User() { 68 } 69 }
3、创建持久层接口IUserDao com.mantishell.dao.IUserDao.java
public interface IUserDao { List<User> findAll(); }
4、在resource添加SqlMapConfig.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <!--配置环境,default的名称可以随便填写,填写后environment里必须要有该defaullt的内容--> 7 <environments default="mysql"> 8 <!--配置mysql的环境--> 9 <environment id="mysql"> 10 <!--配置事务的类型--> 11 <transactionManager type="JDBC"></transactionManager> 12 <!--配置数据源(连接池)--> 13 <dataSource type="POOLED"> 14 <property name="driver" value="com.mysql.jdbc.Driver"/> 15 <property name="url" value="jdbc:mysql://localhost:3306/db1"/> 16 <property name="username" value="root"/> 17 <property name="password" value="123456"/> 18 </dataSource> 19 </environment> 20 </environments> 21 22 <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件--> 23 <mappers> 24 <!--resource指定文件的位置--> 25 <mapper resource="com/mantishell/dao/IUserDao.xml" /> 26 </mappers> 27 </configuration>
5、在resource下创建持久层接口的映射文件 com.mantishell.dao.IUserDao.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <!--namespace写的是dao(持久层接口)的全限定类名--> 6 <mapper namespace="com.mantishell.dao.IUserDao"> 7 <!--id是dao的方法名称;resultType表示返回的类型--> 8 <select id="findAll" resultType="com.mantishell.domain.User" > 9 select * from user 10 </select> 11 </mapper>
6、表的内容
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `address` varchar(100) DEFAULT NULL, `sex` varchar(10) DEFAULT NULL, `birthday` date DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
7、测试
可以写个main方法
1 public static void main(String[] args) throws Exception{ 2 //1、读取配置 3 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); 4 //2、创建SqlSessionFactory工厂 5 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//创建工厂 mybatis使用了构建者模式,构建者模式:把对象的创建细节隐藏,使使用者直接调用方法即可拿到对象。 6 SqlSessionFactory factory = builder.build(in);//builder就是构建者 7 //3、使用工厂生产SqlSession对象 8 SqlSession session = factory.openSession();//生产SqlSession 使用了工厂模式 9 //4、使用SqlSession创建Dao接口的代理对象 10 IUserDao userDao = session.getMapper(IUserDao.class);//创建Dao接口实现类 使用了代理模式 11 //5、使用代理对象执行方法 12 List<User> users = userDao.findAll(); 13 for (User user : users) { 14 System.out.println(user); 15 } 16 //6、释放资源 17 session.close(); 18 in.close(); 19 }
8、log4j 配置文件
1 # Set root category priority to INFO and its only appender to CONSOLE. 2 #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal 3 log4j.rootCategory=debug, CONSOLE, LOGFILE 4 5 # Set the enterprise logger category to FATAL and its only appender to CONSOLE. 6 log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE 7 8 # CONSOLE is set to be a ConsoleAppender using a PatternLayout. 9 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 10 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 11 log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n 12 13 # LOGFILE is set to be a File appender using a PatternLayout. 14 log4j.appender.LOGFILE=org.apache.log4j.FileAppender 15 log4j.appender.LOGFILE.File=e:/axis.log 16 log4j.appender.LOGFILE.Append=true 17 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 18 log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

浙公网安备 33010602011771号