使用mybatis实现数据访问

来源:互联网 发布:广州恒大淘宝还合作吗 编辑:程序博客网 时间:2024/06/08 12:38
【jar包:】
slf4j-log4j12-xxx.jar
slf4j-api-xxx.jar
mybatis-spring-xxx.jar
mybatis-xxx.jar
log4j-core-xx.jar
log4j-api-xx.jar
log4j-xxx.jar
javassist-xxx-GA.jar
cglib-xx.jar
asm-xx.jar

【oracle数据库表:】
CREATE TABLE HEAD
(
       hid NUMBER PRIMARY KEY,
       hname NVARCHAR2(20) NOT NULL
);
INSERT INTO head VALUES('1','BOSS杂志1');
INSERT INTO head VALUES('2','BOSS杂志2');
INSERT INTO head VALUES('3','BOSS杂志3');
INSERT INTO head VALUES('4','BOSS杂志4');
INSERT INTO head VALUES('5','BOSS杂志5');
INSERT INTO head VALUES('6','BOSS杂志6');

【实体类:】
Head.java:




public class Head {
private int hid;
private String  hname;

public int getHid() {
return hid;
}
public void setHid(int hid) {
this.hid = hid;
}
public String getHname() {
return hname;
}
public void setHname(String hname) {
this.hname = hname;
}
public Head(int hid, String hname) {
super();
this.hid = hid;
this.hname = hname;
}
public Head() {
super();
}
public Head(String hname) {
super();
this.hname = hname;
}
}


【实体类映射文件:】
HeadMapper.xml:

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 


<mapper namespace="com.test.entity.HeadMapper">

<select id="getAll" resultType="head">
select * from Head
</select>
<select id="getHeadById" resultType="head" parameterType="int" >
select * from Head where hid=#{#hid}
</select>

<insert id="insertHead" parameterType="head" >
<selectKey resultType="Integer" keyProperty="hid" order="AFTER">
select SEQ_HID.Currval AS hid from dual
</selectKey>
insert into Head(hid,hname) values(SEQ_HID.NEXTVAL,#{hname})
</insert>



<delete id="deleteById" parameterType="int">
delete from Head where hid=#{hid}
</delete>

<update id="updateHead" parameterType="head">
update Head set hname=#{hname} where hid=#{hid}
</update>

</mapper>



【mybatis-config.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><!--子元素顺序不能错-->
<!--别名-->
<typeAliases>
<typeAlias type="com.test.entity.Head" alias="head" />
</typeAliases>
<!--数据源-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
<property name="username" value="system" />
<property name="password" value="orcl" />
</dataSource>
</environment>
</environments>


<!--引入配置文件-->
<mappers>
<mapper resource="com/test/entity/HeadMapper.xml" />
</mappers>
 

</configuration>

ps:configuration下子元素顺序:
(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)
【测试类】
Test.java:

public class Test {
public static void main(String[] args) {
// 加载mybatis-config.xml配置文件
String resource = "mybatis-config.xml";
InputStream reader = Test.class.getClassLoader().getResourceAsStream(resource);
// 创建sqlSession工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
// 创建sqlSession
SqlSession session = sessionFactory.openSession();

/*SqlSession session=MybatisUtil.getSession();*///使用工具类创建SqlSession

// 映射sql的标识字符串
//【查】
String statement = "com.test.entity.HeadMapper" + ".getAll";
// 执行查询返回一个唯一user对象的sql
List<Head> list = session.selectList(statement);
System.out.println(list.size());


//【插入】
Head head=new Head("呵呵呵");
String statement = "com.test.entity.HeadMapper" + ".insertHead";
session.insert(statement,head);
session.commit();


//【删除】
Integer id=35;
String statement = "com.test.entity.HeadMapper" + ".deleteById";
session.delete(statement,id);
session.commit();
session.close();


//【更新】
Head head=new Head(33,"这是修改");
String statement = "com.test.entity.HeadMapper" + ".updateHead";
session.update(statement,head);
session.commit();
session.close();

//【根据id查询单个Head】
Integer id=1;
String statement = "com.test.entity.HeadMapper" + ".getHeadById";
Head head=session.selectOne(statement,id);
session.commit();
session.close();
System.out.println(head.getHname());
}
}
原创粉丝点击