1.mybatis的基本应用
一、建立数据的数据模型
1.1建立表的结构如图:
1.2手动填入测试的数据
目前为止,数据库的数据模型建立就算完成了。
二、建立好测试web项目,写好javabean,并配置相应xml文件
2.1根据数据数据类型建好JavaBean
2.2下图为项目的目录结构,和需要的包;
2.3将mybatis官网下的源码包中的测试例子中的核心配置文件Configuration.xml和对应的数据模型文件拷贝到项目中的org.config和org.model包中
此配置文件的路径:mybatis-3-mybatis-3.4.1src estjavaorgapacheibatissubmittedcomplex_property
2.4将User.xml更名为Person.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"> <!-- 同一个项目中的resultMap是不能重复的,所以需要namespace来进行分包 --> <mapper namespace="Person"> <!-- 配置数据库映射,Hibernate叫mapping(映射)mybatis叫Alias(别名) --> <resultMap type="PersonAlias" id="PersonResult"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="name" jdbcType="VARCHAR" property="name"/> <result column="age" jdbcType="INTEGER" property="age"/> <result column="height" jdbcType="DOUBLE" property="height"/> </resultMap> <!-- 配置sql语句,配置传入参数的类型,并设置好id,resultMap要与上面的映射匹配,这个语句传入的参数为空 --> <select id="getPersonList" resultMap="PersonResult"> SELECT * FROM Person </select> </mapper>
2.5配置mybatis核心配置configuration.xml
<?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> <settings> <setting name="useGeneratedKeys" value="false"/> <setting name="useColumnLabel" value="true"/> </settings> <!-- 配置对应的javabean的路径 --> <typeAliases> <typeAlias alias="PersonAlias" type="org.model.Person"/> </typeAliases> <!-- 配置数据库的连接信息 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="" value=""/> </transactionManager> <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/testmybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 配置映射类xml文件的路径 --> <mappers> <mapper resource="org/model/Person.xml"/> </mappers> </configuration>
三、书写MybatisSqlSessionFacoty、PersonDao、PersonDaoImp类
3.1书写MybatisSqlSessionFacoty
package org.sqlsessionfactory; import java.io.Reader; import java.io.IOException; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /** * 获取操作数据库的session * @author Administrator * */ public class MybatisSessionFactory { public SqlSession getSqlSession() throws IOException { // 通过配置文件读取连接信息 Reader reader = Resources.getResourceAsReader("org/config/Configuration.xml"); // 通过配置信息构建sqlSessionnFactory SqlSessionFactory SqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 通过sqlSessionFactory打开session SqlSession sqlSession = SqlSessionFactory.openSession(); return sqlSession; } }
3.2书写PersonDao
package org.dao; import java.util.List; import org.model.Person; public interface PersonDao { /** * 1.查询所有登记的人 * @return List<Person> */ public List<Person> GetPersonList (); }
3.3书写PersonDaoImp
package org.dao.imp; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.dao.PersonDao; import org.model.Person; import org.sqlsessionfactory.MybatisSessionFactory; public class PersonDaoImp implements PersonDao { @Override public List<Person> GetPersonList() { MybatisSessionFactory mybataitssqlSession = new MybatisSessionFactory(); SqlSession sqlSession = null; try { sqlSession = mybataitssqlSession.getSqlSession(); List<Person> li = sqlSession.selectList("Person.getPersonList"); return li; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } finally { sqlSession.close(); } } }
四、写测试类,测试代码
4.1书写test1
package org.test; import java.util.List; import org.dao.PersonDao; import org.dao.imp.PersonDaoImp; import org.model.Person; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; /** * 测试查询所有person * @author Administrator * */ public class test1 { public static void main(String[] args) throws JsonProcessingException { PersonDao pDao = new PersonDaoImp(); List<Person> li = pDao.GetPersonList(); System.out.println(new ObjectMapper().writeValueAsString(li)); } }
4.2运行看结果
OK,测试成功,数据正常返回!
ps:项目最终目录