mybatis快速入门
来源:互联网 发布:张东健在韩国地位 知乎 编辑:程序博客网 时间:2024/05/21 06:59
1)创建一个mybatis-day01这么一个javaweb工程或java工程
2)导入mybatis和mysql/oracle的jar包到/WEB-INF/lib目录下
3)创建students.sql表
--mysql语法
create table students(
id int(5) primary key,
name varchar(10),
sal double(8,2)
);
--oracle语法
create table students(
id number(5) primary key,
name varchar2(10),
sal number(8,2)
);
4)创建Student.java
/**
* 学生
* @authorAdminTC
*/
public class Student {
private Integerid;
private Stringname;
private Doublesal;
public Student(){}
public Integer getId() {
returnid;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
returnname;
}
public void setName(String name) {
this.name = name;
}
public Double getSal() {
returnsal;
}
public void setSal(Double sal) {
this.sal = sal;
}
}
5)在entity目录下创建StudentMapper.xml配置文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEmapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="mynamespace">
<insertid="add1">
insert into students(id,name,sal) values(1,'哈哈',7000)
</insert>
<insertid="add2" parameterType="cn.itcast.javaee.mybatis.app05.Student">
insert into students(id,name,sal) values(#{id},#{name},#{sal})
</insert>
</mapper>
6)在src目录下创建mybatis.xml配置文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEconfiguration PUBLIC"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environmentsdefault="development">
<environmentid="development">
<transactionManagertype="JDBC"/>
<dataSourcetype="POOLED">
<propertyname="driver"value="com.mysql.jdbc.Driver"/>
<propertyname="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
<propertyname="username"value="root"/>
<propertyname="password"value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapperresource="cn/itcast/javaee/mybatis/app05/StudentMapper.xml"/>
</mappers>
</configuration>
7)在util目录下创建MyBatisUtil.java类,并测试与数据库是否能连接
/**
* MyBatis工具类
* @authorAdminTC
*/
public class MyBatisUtil {
private static ThreadLocal<SqlSession> threadLocal =new ThreadLocal<SqlSession>();
private static SqlSessionFactory sqlSessionFactory;
static{
try {
Reader reader = Resources.getResourceAsReader("mybatis.xml");
sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
private MyBatisUtil(){}
public static SqlSession getSqlSession(){
SqlSession sqlSession = threadLocal.get();
if(sqlSession ==null){
sqlSession = sqlSessionFactory.openSession();
threadLocal.set(sqlSession);
}
return sqlSession;
}
public static void closeSqlSession(){
SqlSession sqlSession = threadLocal.get();
if(sqlSession !=null){
sqlSession.close();
threadLocal.remove();
}
}
public static void main(String[] args) {
Connection conn = MyBatisUtil.getSqlSession().getConnection();
System.out.println(conn!=null?"连接成功":"连接失败");
}
}
8)在dao目录下创建StudentDao.java类并测试
/**
* 持久层
* @authorAdminTC
*/
public class StudentDao {
/**
* 增加学生(无参)
*/
public void add1() throws Exception{
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try{
sqlSession.insert("mynamespace.add1");
}catch(Exception e){
e.printStackTrace();
sqlSession.rollback();
throw e;
}finally{
sqlSession.commit();
}
MyBatisUtil.closeSqlSession();
}
/**
* 增加学生(有参)
*/
public void add2(Student student) throws Exception{
SqlSession sqlSession = MyBatisUtil.getSqlSession();
try{
sqlSession.insert("mynamespace.add2",student);
}catch(Exception e){
e.printStackTrace();
sqlSession.rollback();
throw e;
}finally{
sqlSession.commit();
}
MyBatisUtil.closeSqlSession();
}
public static void main(String[] args)throws Exception{
StudentDao dao = new StudentDao();
dao.add1();
dao.add2(new Student(2,"呵呵",8000D));
}
}
- MyBatis-----1、MyBatis快速入门
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- MyBatis快速入门经典
- mybatis快速入门
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- Mybatis快速入门指南
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- MyBatis-快速入门
- MyBatis快速入门
- MyBatis --快速入门
- MyBatis --快速入门
- mybatis 快速入门
- mybatis快速入门
- mybatis快速入门
- V,W,H模型
- Oracle常见等待事件说明
- Oracle date和timestamp区别
- 解决xcode7真机测试不能联网
- 两个html页面互相传值
- mybatis快速入门
- [jQuery插件] 移动端整屏滚动的DD Full Screen Slider
- Linux Shell 1>/dev/null 2>&1 含义
- Remove Element<leetcode>
- hadoop环境配置过程中可能遇到问题的解决方案
- 文章标题
- 快速排序算法-分治思想
- 欢迎使用CSDN-markdown编辑器(作为备忘)
- PHP-数组生成xml数据