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(); } } }}
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.查看运行结果