1.jar包
2.mybatis-config.xm配置文件
<?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> <!-- 別名的定制 --> <typeAliases> <!-- 按類型名定制別名 --> <!-- <typeAlias type="cn.happy.entity.Student" alias="Student"/> --> <!-- 拿當前指定包下的簡單類名作為別名 --> <package name="cn.happy.entity"/> </typeAliases> <environments default="mysql"> <environment id="mysql"> <!-- 使用jdbc的事務 --> <transactionManager type="JDBC" /> <!-- 使用自帶的連接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/y2162" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/happy/dao/StudentDAO.xml" /> </mappers> </configuration>
3.dao
public interface IStudentDAO { public int addStu(Student stu) throws IOException; //刪除 public int delStu(int id) throws IOException; //查詢所有記錄 public List<Student> findAll() throws IOException; //按照學生姓名查詢學生集合 public List<Student> findStudntByName(Student stu) throws IOException; public List<Student> findStudntByName(String stuname) throws IOException; }
daoImpl
public class StudentDAOImpl implements IStudentDAO { SqlSession session ; public StudentDAOImpl() throws IOException { session= MybatisUtil.getSession(); } public List<Student> findStudntByName(String stuname) throws IOException { List<Student> list = session.selectList("findStudentByName",stuname); session.close(); return list; } /** * * 模糊查詢 */ public java.util.List<Student> findStudntByName(Student stu) throws IOException { List<Student> list = session.selectList("findStudentByName",stu); session.close(); return list; } /** * 查詢所有 */ public java.util.List<Student> findAll() throws IOException { List<Student> list = session.selectList("findAll"); session.close(); return list; } /** * 刪除 */ public int delStu(int id) throws IOException { int result = session.delete("delStudent",id); session.commit(); session.close(); return result; } public int addStu(Student stu) throws IOException { int result = session.insert("insertStudent",stu); session.commit(); session.close(); return result; } }
dao.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"> <mapper namespace="cn.happy.dao"> <insert id="insertStudent" parameterType="Student" > insert into student(stuname,stuage,studate) values(#{stuname},#{stuage},#{studate}) <!-- sqlserver 和Mysql 只有自自增 自增時機和insert時機: 先insert返回自增值 Oracle先產生一個自增值,然後再執行insert --> <selectKey keyProperty="stuno" resultType="int"> select @@identity </selectKey> </insert> <!--刪除學生 --> <delete id="delStudent"> delete from student where stuno=#{xxx}<!-- #{xxx}隨便寫,起到一個占位的作用 --> </delete> <!-- 查詢所有 --> <select id="findAll" resultType="Student"> select * from student </select> <!--模糊查詢 --> <select id="findStudentByName" resultType="Student"> <!-- select * from student where stuname like concat('%',#{stuname},'%') --> select * from student where stuname like '%${value}%' </select> </mapper>
MyBatisUitl工具類
/** * 工具類 * @author Happy * */ public class MybatisUtil { private static String config="mybatis-config.xml"; static Reader reader; static{ try { reader= Resources.getResourceAsReader(config); } catch (IOException e) { e.printStackTrace(); } } private static SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader); //提供一個可以獲取到session的方法 public static SqlSession getSession() throws IOException{ System.out.println("22222"+factory); //弊病,就是工廠是 // 1.1 openSession到底做了什麼 SqlSession session = factory.openSession(); System.out.println("3333"); return session; } }
單測
public class MyTest { IStudentDAO dao; @Before public void initData() throws IOException{ dao=new StudentDAOImpl(); } /** * 模糊查詢 * @throws IOException */ @Test public void findStudentByName() throws IOException{ /*Student stu=new Student(); stu.setStuname("三");*/ List<Student> list = dao.findStudntByName("三"); for (Student student : list) { System.out.println(student.getStuname()); } } /** * selectALl學生 * @throws IOException */ @Test public void findAll() throws IOException{ List<Student> list = dao.findAll(); for (Student student : list) { System.out.println(student.getStuname()); } } /** * 刪除學生 * @throws IOException */ @Test public void delStudent() throws IOException{ dao.delStu(2); System.out.println("ok"); } @Test public void testAdd() throws IOException{ Student stu=new Student(); stu.setStuname("張三"); stu.setStuage(21); stu.setStudate(new Date()); System.out.println("添加前"+stu); IStudentDAO dao=new StudentDAOImpl(); dao.addStu(stu); System.out.println("添加後"+stu); } }