接着上面建立的maven項目來。java
1.java目錄下建立cn.happy.entity包mysql
2.idea下建立數據庫鏈接sql
配置鏈接參數數據庫
3.把數據庫表變成實體類apache
導入成功,改一下包名就能夠用了session
4.新建cn.happy.dao包,在下面新建IUserDAO接口,代碼以下mybatis
1 package cn.happy.dao; 2 3 import cn.happy.entity.Smbms_user; 4 5 import java.util.List; 6 7 public interface IUserDAO { 8 List<Smbms_user> findAll(); 9 }
5.在IUserDAO同包下新建IUserDAO.xml文件(俗稱小配置),文件名必定要相同(這樣作能夠規避後面的一些問題)。app
官方文檔中找到maven
2.1.4 Exploring Mapped SQL Statementside
把下面的文檔直接粘貼到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 <mapper namespace="org.mybatis.example.BlogMapper"> 6 <select id="selectBlog" parameterType="int" resultType="Blog"> 7 select * from Blog where id = #{id} 8 </select> 9 </mapper>
修改包名和<mapper>節點,好比個人代碼修改以下便可
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 <!--關聯接口的全限定名--> 6 <mapper namespace="cn.happy.dao.IUserDAO"> 7 <!--大配置中settings autoMappingBehavior NONE,因此數據庫只會裝配如下column--> 8 <resultMap id="UserMapper" type="cn.happy.entity.Smbms_user"> 9 <id property="id" column="id"/> 10 <result property="username" column="username"/> 11 <result property="userpassword" column="userpassword"/> 12 </resultMap> 13 <!--id要與接口中的方法名相同--> 14 <select id="findAll" resultMap="UserMapper"> 15 select * from smbms_user 16 </select> 17 </mapper>
6.配置resources
這裏須要配置三個文件
1.jdbc.properties
2.log4j.properties
3.mybatis-config.xml
jdbc.properties
1 jdbc.driver=com.mysql.jdbc.Driver 2 jdbc.url=jdbc:mysql:///t14_smbms?characterEncoding=utf8&useSSL=true 3 jdbc.username=root 4 jdbc.password=root
log4j.properties
1 log4j.rootLogger=debug,stdout,file 2 ### direct log messages to stdout ### 3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 4 log4j.appender.stdout.Target=System.out 5 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 6 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 7 8 ### direct messages to file mylog.log ### 9 log4j.appender.file=org.apache.log4j.FileAppender 10 log4j.appender.file.File=c:\\logs\\log.log 11 log4j.appender.file.layout=org.apache.log4j.PatternLayout 12 log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 13 14 ### set log levels - for more verbose logging change 'info' to 'debug' ### 15 16 log4j.logger.cn.happy.dao=debug, stdout,file
mybatis-config.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 <!--引入 jdbc.properties--> 7 <properties resource="jdbc.properties"/> 8 <settings> 9 <setting name="logImpl" value="LOG4J"/> 10 <setting name="autoMappingBehavior" value="NONE"/> 11 </settings> 12 <!--別名,這裏不使用別名,一概使用全限定名--> 13 <!--<typeAliases> 14 <package name="cn.happy.entity"/> 15 </typeAliases>--> 16 <!--DB connection info,配置mybatis多套運行環境--> 17 <environments default="development"> 18 <environment id="development"> 19 <!--採用jdbc事務管理--> 20 <transactionManager type="JDBC"/> 21 <dataSource type="POOLED"> 22 <property name="driver" value="${jdbc.driver}"/> 23 <property name="url" value="${jdbc.url}"/> 24 <property name="username" value="${jdbc.username}"/> 25 <property name="password" value="${jdbc.password}"/> 26 </dataSource> 27 </environment> 28 </environments> 29 <!--大配置關聯小配置--> 30 <mappers> 31 <!--關聯單個小配置,不能重複關聯--> 32 <mapper resource="cn/happy/dao/IUserDAO.xml"/> 33 <!--關聯整個包,dao層接口名字和對應的xml名字要同樣--> 34 <!--<package name="cn.happy.dao"/>--> 35 </mappers> 36 </configuration>
7.編寫MyBatisUtil類
1 package cn.happy.util; 2 3 import org.apache.ibatis.io.Resources; 4 import org.apache.ibatis.session.SqlSession; 5 import org.apache.ibatis.session.SqlSessionFactory; 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 7 8 import java.io.IOException; 9 import java.io.InputStream; 10 11 public class MyBatisUtil { 12 private static InputStream is; 13 private static SqlSessionFactory sqlSessionFactory; 14 static { 15 try { 16 is=Resources.getResourceAsStream("mybatis-config.xml"); 17 } catch (IOException e) { 18 e.printStackTrace(); 19 } 20 sqlSessionFactory= new SqlSessionFactoryBuilder().build(is); 21 } 22 private MyBatisUtil(){} 23 public static SqlSession getSession(){ 24 return sqlSessionFactory.openSession(); 25 } 26 }
8.建立測試類
代碼:
1 package cn.happy.test; 2 3 import cn.happy.dao.IUserDAO; 4 import cn.happy.entity.Smbms_user; 5 import cn.happy.util.MyBatisUtil; 6 import org.apache.ibatis.session.SqlSession; 7 import org.junit.Test; 8 9 import java.util.List; 10 11 public class Test20170916 { 12 @Test 13 public void findAll(){ 14 SqlSession session = MyBatisUtil.getSession(); 15 IUserDAO mapper = session.getMapper(IUserDAO.class); 16 List<Smbms_user> users = mapper.findAll(); 17 for (Smbms_user user:users 18 ) { 19 System.out.println(user.getId()+"\t"+user.getUsername()+"\t"+user.getUserpassword()); 20 } 21 } 22 }
運行結果: