这次没有mapper.xml文件啦
Mybatis-config.xml
< mapper class=“com.parsley.mapper.StudentMapper”/>这里发生了改变
<?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/mybatis?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="com.parsley.mapper.StudentMapper"/>
</mappers>
</configuration>
没有Student.xml
与之对应的就变为了StudentMapper.java
StudentMapper.java
package com.parsley.mapper;
import com.parsley.bean.Student;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
public interface StudentMapper {
@Select("select * from student where id=#{id}")
public Student getById(Integer id);
@Insert("insert into student values(null,#{name},#{sex},#{age})")
public void insert(Student student);
}
有一个注解@results()里面可以配置复杂类型就像xml配置法里的< resultMap >
@result对应< result >
@one对应< association >
@many对应< collection >
最后是dao的变化
StudentDao
package com.parsley.dao;
import com.parsley.bean.Student;
import com.parsley.mapper.StudentMapper;
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 java.io.IOException;
import java.io.InputStream;
public class StudentDao {
public SqlSession getSqlSession(){
String resources="mybatis-config.xml";
InputStream inputStream= null;
try {
inputStream = Resources.getResourceAsStream(resources);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session=sqlSessionFactory.openSession();
return session;
}
public void insert(Student student){
SqlSession session=getSqlSession();
//就这里变了
StudentMapper mapper=session.getMapper(StudentMapper.class);
mapper.insert(student);
session.commit();
session.close();
}
public Student getById(Integer id){
SqlSession session=getSqlSession();
StudentMapper mapper=session.getMapper(StudentMapper.class);
Student student=mapper.getById(id);
session.commit();
session.close();
return student;
}
}