javeee的mybatis框架,作用于数据库查询
mybatis 框架需要的配置文件config文件 下面的链接中
jar包和config配置文件在下面的通用mapper文件中都有
jar包放在WebRoot文件夹下的lib文件夹中,不需要buildpath(注意不要复制整个文件夹,要复制jar包)
但是要注意要修改config文件中的数据库连接的驱动,用户名,密码等,换成自己的
config和mapper的xml文件需要的dtd约束链接 点击打开链接 密码:0o3o
下面就需要修改config.xml文件,整个文件注意要修改的地方就是mapper映射配置
<package name="wrt.nynu.mapper"/> 所有在目标下的所有数据库映射文件全部配置
下来就需要读取配置文件和根据配置文件构建SqlSessionFactory
package lu.nynu.utils;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybtaisUtils {
public static SqlSessionFactory sqlSessionFactory = null;
// 第一个使用该类的时候调用
static {
try {
// 1、读取配置文件
InputStream stream = org.apache.ibatis.io.Resources
.getResourceAsStream("mybatis-config.xml");
// 2、根据配置文件构建SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* // 3、通过SqlSessionFactory创建SqlSession,使用一次调用一次
* @return
*/
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
构建getsqlsession方法,之后在测试中会用到
之后就是生成po类,根据数据库属性生成po类,比如根据学生表定义一个学生类。根据教师表定义一个教师类。。生成get/set方法,构造函数,如果有输出的需要还需要重写tostring方法
最重要的是构建mapper,先以一个简单的查询语句说明:
定义一个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">
<!-- 配置dtd约束是要用 -->
<mapper namespace="wrt.nynu.mapper.wrt1"> <!-- 映射到那个接口文件,注意要复制qualified name -->
<select id="selectall" resultType="wrt.nynu.po.a1">
SELECT * FROM a1
</select>
</mapper>
这是一个简单的查询语句,写完xml文件后要随后写与之对应的接口文件
package wrt.nynu.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import wrt.nynu.po.a1;
public interface wrt1 {
public List<a1> selectall(); //方法名要和xml文件的id名对应
}
最后就是测试方法
public void select()
{
SqlSession sqlSession =MybtaisUtils.getSqlSession();//构建会话对象
wrt1 wrt1=sqlSession.getMapper(wrt1.class);
List<a1> list=wrt1.selectall();
System.out.println(list);
}
这是简单的数据库查询,查询语句除了在xml文件写还可以在接口文件用@方式写
package wrt.nynu.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import wrt.nynu.po.a1;
public interface wrt1 {
@Insert(value="INSERT INTO a1 (a,b,c) VALUES (#{a},#{b},#{c}) ")
public void insert(a1 a1);
@Select(value=" SELECT * FROM a1")
public List<a1> select2();
}//简单添加和查询
测试方法与上面类似
最后还可以用通用mapper的方法自动生成po类和mapper.
通用mapper文件的配置文件:点击打开链接 密码:x1us
根据配置文件generatorConfig.xml修改一些配置,比如文件生成位置,数据库表的对应
最后运行main文件自动运行,这样就可以自动生成了
package wrt.nynu.mainmapper;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class Generator {
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("config/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);
myBatisGenerator.generate(null);
}
}
这些东西都是边学习边整理的,如果有错误请多多包涵和及时指正