1:
首先是导入Mybatis的jar包,以及object6(数据库)的jar包。
2:
然而是xml配置---放在src下
首先是config.properties文件作为基础
jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl //连接路径
jdbc.driverClass=oracle.jdbc.driver.OracleDriver //连接driver
jdbc.user=myzh //用户名
jdbc.pwd=123 //密码
XML取名为:mybatis.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>
<properties resource="config.properties"> //注意这里 资源是上面的config.properties文件
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.jdbcUrl}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.pwd}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/gxa/bj/model/UserInfoMapper.xml"/> //添加下面的Model里面的Mapper.xml
<mapper resource="com/gxa/bj/model/TypesMapper.xml"/>
</mappers>
</configuration>
3 :
dao层
目前dao层只有一个接口:IDaoInterface
public interface IDaoInterface <T>
{
public List<T> getSelect(T t);//查询
public T getModel(Object obj);//获取实体
public int getInsert(T t);//插入
public int getUpdate(T t);//修改
public int getDelete(Object obj);//删除
}
4 :
然后是daoimp层(Testxxx是测试类 直接无视)
一个model层的类的一个Mapper.xml写一个相应的Mapper.java文件
Mapper内容为:
public interface TypeMapper extends IDaoInterface<Type> // 该接口继承dao层的接口
{
}
一个model的类写一个对应的Mapper.xml
Mapper.xml的内容:(以TypeMapper为例)
<?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="com.gxa.bj.daoimp.TypeMapper"> //注意namespace 这里是代理模式 实现这个daoImp的接口
<insert id="getInsert" parameterType="com.gxa.bj.model.Type"> //在这里的xml里面实现sql语句,将不再代码里实现 各方法id为dao层接口方法的各个相对应的方法名
<selectKey keyProperty="typeId" resultType="int" order="BEFORE">
select typenext.nextval from dual
</selectKey>
insert into Type (typeId,content)values (#{typeId},#{content})
</insert>
<select id="getSelect" parameterType="com.gxa.bj.model.Type" resultType="com.gxa.bj.model.Type">
select * from Type where typeId=${typeId},content=${content}
</select>
<update id="getUpdate" parameterType="com.gxa.bj.model.Type">
update Type set content= '${content}' where typeId=${typeId}
</update>
<delete id="getDelete" parameterType="int"> //parameterType为接收类型
delete from Type where typeId=${typeId}
</delete>
<select id="getModel" parameterType="int" resultType="com.gxa.bj.model.Type">//resultType为返回类型,一般查询要加这句
select * from Type where typeId=${typeId}
</select>
</mapper>
基本就完整了 ,最后再测试类里面来测试下---TestType ---Type这个类就2个字段
//不要想太多 都是套路
String resource = "mybatis.xml";
InputStream input = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
SqlSession sqlsession =sqlSessionFactory.openSession();
TypeMapper typeMapper = sqlsession.getMapper(TypeMapper.class);
Type type = new Type();
/* type.setContent("时代"); 插入
if(typeMapper.getInsert(type)>0) //这个方法来自继承dao层接口的方法
{
sqlsession.commit();
System.out.println("添加成功");
}
else
{
System.out.println("添加失败");
}*/