1.工具类与jar包在前面已经介绍,不累述。
2.在项目中新建dao包,包含sqltools接口及其实现类
3.sqltools接口:
package dao;
import com.gyf.model.student;
public interface sqltools {
//对数据库插入数据
public void save(student student);
//查找
public student findUserId(int id);
//删除
public void deleteUser(int id);
//更新
public void updateStudent(student student);
}
4.sqltools接口实现类:
package dao;
import com.gyf.model.student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
public class sqltoolsImp implements sqltools{
private SqlSessionFactory ssf;
public sqltoolsImp(SqlSessionFactory ssf) {
this.ssf = ssf;
}
@Override
public void save(student student) {
SqlSession session=ssf.openSession();
session.insert("insertData",student);
session.commit();
session.close();
}
@Override
public student findUserId(int id) {
SqlSession session=ssf.openSession();
student student=session.selectOne("selectStudent",id);
session.close();
return student;
}
@Override
public void deleteUser(int id) {
SqlSession session=ssf.openSession();
session.delete("deleteData",id);
session.close();
}
@Override
public void updateStudent(student student) {
SqlSession session=ssf.openSession();
session.update("updateData",student);
session.commit();
session.close();
}
}
4.数据库映射文件
.
<?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="student">
<select id="selectStudent" resultType="com.gyf.model.student" parameterType="int">
select * from students where id =#{id}
</select>
<!-- <select id="selectStudentNanme" resultType="com.gyf.model.student" parameterType="String">-->
<!-- select * from students where name like '%${value}%'-->
<!--</select>-->
<insert id="insertData" parameterType="com.gyf.model.student">
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
insert into students (sno,name,age,school,pass)
value (#{sno},#{name},#{age},#{school},#{pass});
</insert>
<delete id="deleteData" parameterType="int" >
delete from students where id =#{id}
</delete>
<update id="updateData" parameterType="com.gyf.model.student" >
update students set sno=#{sno},name=#{name},age=#{age},school=#{school},pass=#{pass}
where id=#{id};
</update>
</mapper>
5.
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/gyf/sqlmap/student.xml"/>
</mappers>
</configuration>
5.测试类
package test;
import com.gyf.model.student;
import dao.sqltools;
import dao.sqltoolsImp;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class Demo{
SqlSessionFactory sessionFactory;
@Before
public void before() throws IOException
{
InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
sessionFactory=new SqlSessionFactoryBuilder().build(is);
}
@Test
public void Test()
{
sqltools sqltools=new sqltoolsImp(sessionFactory);
student student=sqltools.findUserId(32760);
System.out.println(student);
student student3=new student("256","李四",25,"eggr","255");
sqltools.save(student3);
sqltools.deleteUser(32762);
sqltools sqltools=new sqltoolsImp(sessionFactory);
student student4=new student("256","张四",25,"eggr","255");
student4.setId(32762);
sqltools.updateStudent(student4);
}
}
6.结论:
本次文档只为介绍mybatis入门,其功能虽然已经完善,但技术早已更新,
只为介绍面向接口编程的思想,希望能帮助读者。