博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
myBatis01
阅读量:6196 次
发布时间:2019-06-21

本文共 4022 字,大约阅读时间需要 13 分钟。

 

1.创建对应的数据库以及需要的表

2.创建对应的java项目,引入需要的mybatis需要的jar,以及连接mysql数据库的jar!

 

3.创建对应的Student实体类

/** *学生的实体类 */public class Student {    private Integer id; // 学生编号    private String name; // 姓名    private Integer age; // 年龄    /**     * 对应的有参无参构造以及对应的get和set方法     */    public Student() {        super();    }    public Student(Integer id, String name, Integer age) {        super();        this.id = id;        this.name = name;        this.age = age;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }}

4.创建对应的接口以及mapper文件

public interface StudentDao {    /**     * 新增学生信息     */    void addStudent(Student student);}
insert into student(age,name) values(#{age},#{name})

5.创建对应的实现类和工具类

public class StudentDaoImpl implements StudentDao {    //新增学生    @Override    public void addStudent(Student student) {        SqlSession session=null;        try {            session = MyBatisUtils.getSession();  //获取session            /**             * 新增操作             * addStudent:一定要和mapper文件中 的 id一致!             */            session.insert("addStudent", student);            /**             * 需要我们手动提交事务   02. 为什么 需要 手动提交             * 03.在底层代码中查看得出结论             *    底层的insert 以及delete 其实都是执行了 update操作             *    关键点在于 dirty!!!             * 04.怎么看到了session.commit  就是transaction.commit();              *     001.MyBatisUtils 的方法 openSession的时候!默认没有传递参数==>autoCommit=false             *         需要我们手动提交事务!             *     002.session.insert() 底层默认调用了update()             *          就是在update(),dirty=true!  数据是脏数据!             *     003. session.commit(); 底层 默认    transaction.commit();             *          之后dirty=false!  因为已经同步到数据库中!不是脏数据了!             */            session.commit();        } catch (Exception e) {            e.printStackTrace();        }finally{            if (session!=null) {                session.close();            }        }            }}
View Code

 

 

 01.所有的增删改默认调用  update

02.update方法中有 一个非常重要的属性 是  dirty ===>脏!

 为什么需要提交!  dirty!!!

 

 

/** *  创建会话工厂的单例 */public class MyBatisUtils {    //创建本类的静态变量    private static  SqlSessionFactory sessionFactory;        //私有化构造    private MyBatisUtils(){}        //对外访问的接口    public  static  SqlSession getSession(){        try {            //读取mybatis的核心配置文件            InputStream stream = Resources.getResourceAsStream("mybatis.xml");            if (sessionFactory==null) { //判断sessionFactory是否为空                sessionFactory=new SqlSessionFactoryBuilder().build(stream);            }        } catch (IOException e) {            e.printStackTrace();        }        //01.这里为什么不需要关闭流?          return  sessionFactory.openSession();    }}

 

 

 

 

 

 

6.创建mybatis的核心配置文件和日志文件

 

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=用户名jdbc.password=密码
log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target=System.outlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=[%-5p] %c %L %m %nlog4j.rootLogger=trace,console

7.创建测试类测试

public class StudentTest {    @Test    public void test() {        StudentDao dao = new StudentDaoImpl();        dao.addStudent(new Student(1, "小黑", 10));    }}

8.查看运行结果

 

转载于:https://www.cnblogs.com/xtdxs/p/7094903.html

你可能感兴趣的文章
关于闭包
查看>>
免费商用字体
查看>>
网游UI解决方案的选择
查看>>
C# partial 说明
查看>>
bzoj 1503 平衡树
查看>>
PHP简易计算器方法1
查看>>
Android 读取<meta-data>元素的数据
查看>>
1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
查看>>
作业题
查看>>
归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较...
查看>>
数据的处理
查看>>
Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value
查看>>
Caused by: java.net.UnknownHostException
查看>>
Nginx 日志分析及性能排查
查看>>
常用内置对象
查看>>
Parallel 试验
查看>>
jqgrid content-type datatype
查看>>
自己的mongodb的CRUD封装
查看>>
物理备库互转快照备库
查看>>
Ctrl+H 浪潮Raid配置文档
查看>>