工程目录结构如下:
sql语句如下:
/*
SQLyog 企业版 - MySQL GUI v8.14
MySQL - 5.1.33-community-log : Database - test
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `student` */
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sname` varchar(30) DEFAULT NULL,
`major` varchar(30) DEFAULT NULL,
`birth` date DEFAULT NULL,
`score` float DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*Data for the table `student` */
insert into `student`(`sid`,`sname`,`major`,`birth`,`score`) values (1,'mary','nv','2013-01-01',90),(2,'tom','nan','2012-01-01',91),(3,'aaa','nan','2011-01-01',66),(4,'mm','nv','2015-11-11',100),(5,'cate','nv','2020-11-11',100);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
1. Eclipse导入mybatis-3.2.3.jar和mysql-connector-java-5.1.28-bin.jar两个jar包。
2. mybatis-config.xml内容如下:
<?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=""/>
<property name="driver.encoding" value="UTF8"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--<mapper resource="data.StudentMapper.xml"/>-->
<!--<mapper class="data.StudentMapper"/>-->
<package name="data"/>
</mappers>
</configuration>
3. StudentMapper.java内容如下:
package data;
import java.util.List;
import mybatis.Student;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
public interface StudentMapper
{
@Insert("insert into student(sname,major,birth,score) values (#{sname},#{major},#{birth},#{score})")
public void insertStudent(Student student);
@Delete("delete from student where sid = #{sid}")
public void deleteStudentById(int sid);
@Update("update student set sname=#{sname},major=#{major},birth=#{birth},score=#{score} where sid=#{id}")
public void updateStudent(Student student);
@Select("select LAST_INSERT_ID()")
public int queryInsertId();
@Select("select sid,sname from student where sid = #{sid}")
public Student queryStudentById(int sid);
@Select("select * from student where sname like \"%\"#{sname}\"%\"")
public List<Student> queryStudentByName(String sname);
}
4. IStudentDAO.java内容如下:
package mybatis;
import java.util.List;
public interface IStudentDAO
{
public void addStudent(Student student);
public void addStudentBySequence(Student student);
public void deleteStudentById(int id);
public void updateStudentById(Student student);
public List<Student> queryAllStudent();
public List<Student> queryStudentByName(String name);
public Student queryStudentById(int id);
public int queryInsertId();
}
5. IStudentDAOImpl.java内容如下:
package mybatis;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Date;
import java.util.List;
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 data.StudentMapper;
public class IStudentDAOImpl implements IStudentDAO
{
private static SqlSessionFactory sqlSessionFactory = null;
static
{
try
{
if(sqlSessionFactory == null)
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
inputStream.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
IStudentDAO dao = new IStudentDAOImpl();
Student student = new Student();
student.setSname("mary1");
student.setMajor("nv");
student.setBirth(Date.valueOf("2014-11-11"));
student.setScore(100);
dao.addStudent(student);
System.out.println(dao.queryInsertId());
/*Student student;
student = dao.queryStudentById(1);
System.out.println(student);*/
//System.out.println(dao.queryStudentByName("m"));
}
@Override
public void addStudent(Student student)
{
try (SqlSession session = sqlSessionFactory.openSession())
{
StudentMapper mapper = session.getMapper(StudentMapper.class);
mapper.insertStudent(student);
}
}
@Override
public void addStudentBySequence(Student student)
{
}
@Override
public void deleteStudentById(int id)
{
try (SqlSession session = sqlSessionFactory.openSession())
{
StudentMapper mapper = session.getMapper(StudentMapper.class);
mapper.deleteStudentById(id);
}
}
@Override
public void updateStudentById(Student student)
{
try (SqlSession session = sqlSessionFactory.openSession())
{
StudentMapper mapper = session.getMapper(StudentMapper.class);
mapper.updateStudent(student);
}
}
@Override
public List<Student> queryAllStudent()
{
return null;
}
@Override
public List<Student> queryStudentByName(String name)
{
try (SqlSession session = sqlSessionFactory.openSession())
{
StudentMapper mapper = session.getMapper(StudentMapper.class);
return mapper.queryStudentByName(name);
}
}
@Override
public Student queryStudentById(int id)
{
try (SqlSession session = sqlSessionFactory.openSession())
{
StudentMapper mapper = session.getMapper(StudentMapper.class);
return mapper.queryStudentById(id);
}
}
@Override
public int queryInsertId()
{
try (SqlSession session = sqlSessionFactory.openSession())
{
StudentMapper mapper = session.getMapper(StudentMapper.class);
return mapper.queryInsertId();
}
}
}
6. Student.java内容如下:
package mybatis;
import java.sql.Date;
public class Student
{
private int sid = 0;
private String sname = null;
private String major = null;
private Date birth = null;
private float score = 0;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString()
{
// TODO Auto-generated method stub
String content = "sid="+sid+" sname="+sname+" major="+major+" birth="+birth+"score="+score;
return content;
}
}