上篇博客主要学习mybatis框架环境配置以及xml解析,本博文主要学习开发中常用的设计方法->接口。
在开发中,我一般分层进行,分别是dao(持久层),entity(实体类),util(工具层),biz(业务层),web(关于servlet,filter),dto(显示表中数据),还像上次那样新建maven,从仓库导入依赖包等(具体详见我上一次博文,下面有链接),之后执行下一步操作:
1.建立各层次的包
2.在entity层中新建实体类,名称是“HUser”代码如下:
package com.hevttc.lmj.entity;
public class HUser {
private int id;
private String username;
private int age;
private int sex;
private String place;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
}
3.在bao包下新建一个接口,接口名叫”HUser.java”,代码如下:
package com.hevttc.lmj.dao;
import java.util.List;
import com.hevttc.lmj.entity.HUser;
public interface HUserdao {
public List<HUser> SelectAllHuser();
}
4.在entity类中新建xml文件,文件名称为“HUser.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">
<!-- namespace里面接的是接口类的路径 -->
<mapper namespace="com.hevttc.lmj.dao.HUserdao">
<!-- id是接口方法,resulttype是返回类型(实体类存放路径) -->
<select id="SelectAllHuser" resultType="com.hevttc.lmj.entity.HUser">
select * from h_user
</select>
</mapper>
5.在src/main/resource路径下新建xml配置文件,文件名称叫“configure.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/project3" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<!-- 实体类映射配置 -->
<mappers>
<mapper resource="com/hevttc/lmj/entity/Huser.xml"/>
</mappers>
</configuration>
6.在util包中新建Session工厂类,类名叫“SessionFactory.java”,代码如下所示:
package com.hevttc.lmj.util;
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;
public class SessionFactory {
public static SqlSession getSession() throws IOException {
SqlSessionFactory fac=new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("Configure.xml"));
SqlSession session=fac.openSession();
return session;
}
public static void ClosedSession(SqlSession session)
{
session.close();
}
}
7.在biz中新建一个业务层类,类名叫“HUserBiz.java”,代码如下:
package com.hevttc.lmj.biz;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.hevttc.lmj.dao.HUserdao;
import com.hevttc.lmj.entity.HUser;
import com.hevttc.lmj.util.SessionFactory;
public class HUserBiz {
HUserdao dao;
public List<HUser> getAllHuser(){
List<HUser> list=null;
try {
SqlSession session=SessionFactory.getSession();
dao=session.getMapper(HUserdao.class);
list=dao.SelectAllHuser();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
8.在“src/test/java”写上测试代码,名称叫“Main.java”,代码如下:
import java.util.List;
import com.hevttc.lmj.biz.HUserBiz;
import com.hevttc.lmj.entity.HUser;
public class Main {
public static void main(String[] args) {
HUserBiz biz=new HUserBiz();
List<HUser> list=biz.getAllHuser();
System.out.println("ID号\t姓名\t年龄\t性别\t地址");
for(HUser user:list)
{
System.out.println(user.getId()+"\t"+user.getUsername()+"\t"+user.getAge()+"\t"+(user.getSex()==0?"男":"女")+"\t"+user.getPlace());
}
}
}
结束,希望巩固我的知识