Mybaits课堂练习
<?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.kgc.dao.UserMapper"> <select id="count" resultType="int"> select count(1) from smbms_user </select> <select id="userlist" resultType="User"> select * from smbms_user </select> <select id="getUserListByNullParam" resultType="User"> select * from smbms_user </select> <!-- 查询供应商记录数--> <select id="result" resultType="int"> select count(1) as count from smbms_provider; </select> <!-- 查询供应商列表 接口--> <select id="getProviderList" resultType="cn.kgc.pojo.Provider"> select * from smbms_provider; </select> <!-- 查询供应商列表 工具 --> <select id="providerlist" resultType="cn.kgc.pojo.Provider"> select * from smbms_provider; </select> </mapper>
<?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="database.properties"> <property name="driver" value="com.mysql.cj.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms?serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull"></property> <property name="username" value="root"></property> <property name="password" value="hxt990105"></property> </properties> <!--设置日记行为--> <settings> <setting name="logImpl" value="LOG4J"></setting> <setting name="lazyLoadingEnabled" value="false"></setting> </settings> <!--設置別名--> <typeAliases> <!--不推荐使用,当我们有很多的实体类的时候,这里配置的也很冗余 <typeAlias type="cn.kgc.pojo.User"></typeAlias>--> <package name="cn.kgc.pojo"></package> </typeAliases> <!--配置运行环境--> <environments default="dev"> <environment id="dev"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> <environment id="test"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> <environment id="pro"> <transactionManager type=""></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/kgc/dao/UserMapper.xml"></mapper> </mappers> </configuration>
package cn.kgc.dao; import cn.kgc.pojo.Provider; import cn.kgc.pojo.User; import java.util.List; public interface UserMapper { public List<User> getUserListByNullParam(); public List<Provider> getProviderList(); }
package cn.kgc.utils; 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 java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { String path = "mybatis-config.xml"; try { InputStream is = Resources.getResourceAsStream(path); sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
package cn.kgc.test; import cn.kgc.dao.UserMapper; import cn.kgc.pojo.Provider; import cn.kgc.pojo.User; import cn.kgc.utils.MybatisUtils; 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.IOException; import java.io.InputStream; import java.util.List; public class TestUserMapper { @Test public void test01(){ //1.加载核心配置文件 String path = "mybatis-config.xml"; InputStream is = null; try { is = Resources.getResourceAsStream(path); // 2.mybatis中的核心类 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(); int result = sqlSession.selectOne("cn.kgc.dao.UserMapper.count"); System.out.println(result); } catch (IOException e) { e.printStackTrace(); } } //使用工具類 @Test public void test02(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); List<User> userList = sqlSession.selectList("cn.kgc.dao.UserMapper.userlist"); for (User user : userList) { System.out.println("****************用戶名"+user.getUserName()); } } //使用接口方式[以后就采用此种方式] @Test public void test03(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); List<User> userList = sqlSession.getMapper(UserMapper.class).getUserListByNullParam(); for (User user : userList) { System.out.println("****************用戶名"+user.getUserName()); } } @Test public void test04(){ String path="mybatis-config.xml"; InputStream is=null; try { is= Resources.getResourceAsStream(path); SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession=sqlSessionFactory.openSession(); int result = sqlSession.selectOne("cn.kgc.dao.UserMapper.result"); System.out.println("一共"+result+"条供应商记录。"); } catch (IOException e) { e.printStackTrace(); } } @Test public void test05(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); List<Provider> providerList = sqlSession.getMapper(UserMapper.class).getProviderList(); for (Provider provider : providerList) { System.out.println("**供应商**"+provider.getProName()+"--"+provider.getProContact()+"--"+provider.getProPhone()+"--"+provider.getProDesc()); } } @Test public void test06(){ SqlSession sqlSession= MybatisUtils.getSqlSession(); List<Provider> providerList=sqlSession.selectList("cn.kgc.dao.UserMapper.providerlist"); for (Provider provider:providerList){ System.out.println("**供应商**"+provider.getProName()+"--"+provider.getProContact()+"--"+provider.getProPhone()+"--"+provider.getProDesc()); } } }