//.com.sxsl.pojo.User
package com.sxsl.pojo;
//实体类
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", pwd='" + pwd + ''' +
'}';
}
}
(2) 接口main.java.com.sxsl.dao.UserDao.java
//com.sxsl.dao.UserDao
package com.sxsl.dao;
import com.sxsl.pojo.User;
import java.util.List;
public interface UserDao {
List getUserList();
User getUserById(int id);
int addUser(User user);
int deleteUser(int id);
int updateUser(User user);
}
"C:Program FilesJavajdk1.8.0_281binjava" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:Program FilesJetBrainsIntelliJ IDEA 2017.2.7libidea_rt.jar=62833:C:Program FilesJetBrainsIntelliJ IDEA 2017.2.7bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJetBrainsIntelliJ IDEA 2017.2.7libidea_rt.jar;C:Program FilesJetBrainsIntelliJ IDEA 2017.2.7pluginsjunitlibjunit-rt.jar;C:Program FilesJetBrainsIntelliJ IDEA 2017.2.7pluginsjunitlibjunit5-rt.jar;C:Program FilesJavajdk1.8.0_281jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_281jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_281jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_281jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_281jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_281jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_281jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_281jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_281jrelibextnashorn.jar;C:Program FilesJavajdk1.8.0_281jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_281jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_281jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_281jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_281jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_281jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_281jrelibjce.jar;C:Program FilesJavajdk1.8.0_281jrelibjfr.jar;C:Program FilesJavajdk1.8.0_281jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_281jrelibjsse.jar;C:Program FilesJavajdk1.8.0_281jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_281jrelibplugin.jar;C:Program FilesJavajdk1.8.0_281jrelibresources.jar;C:Program FilesJavajdk1.8.0_281jrelibrt.jar;C:UsersAdministratorMytabis-Studymytabis-03targettest-classes;C:UsersAdministratorMytabis-Studymytabis-03targetclasses;C:Program FilesJetBrainsapache-maven-3.6.1maven-repolog4jlog4j1.2.17log4j-1.2.17.jar;C:Program FilesJetBrainsapache-maven-3.6.1maven-repomysqlmysql-connector-java5.1.46mysql-connector-java-5.1.46.jar;C:Program FilesJetBrainsapache-maven-3.6.1maven-repojunitjunit4.12junit-4.12.jar;C:Program FilesJetBrainsapache-maven-3.6.1maven-repoorghamcresthamcrest-core1.3hamcrest-core-1.3.jar;C:Program FilesJetBrainsapache-maven-3.6.1maven-repoorgmybatismybatis3.5.2mybatis-3.5.2.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.sxsl.dao.UserMapperTest,testId
[org.apache.ibatis.logging.LogFactory]-Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
[org.apache.ibatis.logging.LogFactory]-Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
[org.apache.ibatis.io.VFS]-Class not found: org.jboss.vfs.VFS
[org.apache.ibatis.io.JBoss6VFS]-JBoss 6 VFS API is not available in this environment.
[org.apache.ibatis.io.VFS]-Class not found: org.jboss.vfs.VirtualFile
[org.apache.ibatis.io.VFS]-VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.
[org.apache.ibatis.io.VFS]-Using VFS adapter org.apache.ibatis.io.DefaultVFS
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/pojo
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/pojo
[org.apache.ibatis.io.DefaultVFS]-Reader entry: User.class
[org.apache.ibatis.io.DefaultVFS]-Listing file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/pojo
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/pojo/User.class
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/pojo/User.class
[org.apache.ibatis.io.DefaultVFS]-Reader entry: ���� 1 @
[org.apache.ibatis.io.ResolverUtil]-Checking to see if class com.sxsl.pojo.User matches criteria [is assignable to Object]
[org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
[org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
[org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
[org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/test-classes/com/sxsl/dao
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/test-classes/com/sxsl/dao
[org.apache.ibatis.io.DefaultVFS]-Reader entry: UserMapperTest.class
[org.apache.ibatis.io.DefaultVFS]-Listing file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/test-classes/com/sxsl/dao
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/test-classes/com/sxsl/dao/UserMapperTest.class
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/test-classes/com/sxsl/dao/UserMapperTest.class
[org.apache.ibatis.io.DefaultVFS]-Reader entry: ���� 1 U
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao
[org.apache.ibatis.io.DefaultVFS]-Reader entry: UserMapper.class
[org.apache.ibatis.io.DefaultVFS]-Reader entry: UserMapper.xml
[org.apache.ibatis.io.DefaultVFS]-Listing file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao/UserMapper.class
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao/UserMapper.class
[org.apache.ibatis.io.DefaultVFS]-Reader entry: ���� 1 getUserList ()Ljava/util/List; Signature (()Ljava/util/List; getUserById (I)Lcom/sxsl/pojo/User; addUser (Lcom/sxsl/pojo/User;)I
[org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao/UserMapper.xml
[org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/C:/Users/Administrator/Mytabis-Study/mytabis-03/target/classes/com/sxsl/dao/UserMapper.xml
[org.apache.ibatis.io.DefaultVFS]-Reader entry:
[org.apache.ibatis.io.ResolverUtil]-Checking to see if class com.sxsl.dao.UserMapperTest matches criteria [is assignable to Object]
[org.apache.ibatis.io.ResolverUtil]-Checking to see if class com.sxsl.dao.UserMapper matches criteria [is assignable to Object]
[org.apache.ibatis.transaction.jdbc.JdbcTransaction]-Opening JDBC Connection
[org.apache.ibatis.datasource.pooled.PooledDataSource]-Created connection 302870502.
[org.apache.ibatis.transaction.jdbc.JdbcTransaction]-Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@120d6fe6]
[com.sxsl.dao.UserMapper.getUserById]-==> Preparing: select * from Mytabis.user where id=?
[com.sxsl.dao.UserMapper.getUserById]-==> Parameters: 1(Integer)
[com.sxsl.dao.UserMapper.getUserById]-<== Total: 1
User{id=1, name='张三', password='12345'}
[org.apache.ibatis.transaction.jdbc.JdbcTransaction]-Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@120d6fe6]
[org.apache.ibatis.transaction.jdbc.JdbcTransaction]-Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@120d6fe6]
[org.apache.ibatis.datasource.pooled.PooledDataSource]-Returned connection 302870502 to pool.
package com.sxsl.dao;
import com.sxsl.pojo.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface UserMapper {
@Select( "select * from user" )
List getUsers();
@Select( "select * from user where id=#{id}" )
//当方法存在多个参数,每个参数前必须添加@Param( )注解
User getUserById(@Param( "id" ) int id);
@Insert("insert into user(id,name,pwd) values(#{id},#{name},#{password})")
int addUser(User user);
@Update( "update user set name=#{name},pwd=#{password} where id=#{id}" )
int updateUser(User user);
@Delete( "delete from user where id=#{uid}" )
int deleteUser(@Param( "uid" ) int id);
}
(3) 编写测试代码UserMapperTest.java
import com.sxsl.dao.UserMapper;
import com.sxsl.pojo.User;
import com.sxsl.util.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserMapperTest {
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
//按用户Id查询
User user=mapper.getUserById( 2 );
System.out.println(user);
//增加用户
mapper.addUser( new User( 5,"hello","1243235" ) );
//修改用户
mapper.updateUser( new User( 5,"tow","1243235" ) );
//删除用户
mapper.deleteUser(5);
//查询所有用户
//底层主要应用反射
UserMapper mapper = sqlSession.getMapper( UserMapper.class );
List users = mapper.getUsers();
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
//Teacher.java
package com.sxsl.pojo;
import lombok.Data;
@Data
public class Teacher {
private int id;
private String name;
}
//Student.java
package com.sxsl.pojo;
import lombok.Data;
@Data
public class Student {
private int id;
private String name;
//学生需要关联一个老师
private Teacher teacher;
}
(3) 建立Mapper接口
//StudentMapper.java
package com.sxsl.dao;
public interface StudentMapper {
}
//TeacherMapper.java
package com.sxsl.dao;
import com.sxsl.pojo.Teacher;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface TeacherMapper {
@Select( "select * from teacher where id=#{tid}" )
Teacher getTeacher(@Param( "tid" ) int id);
}
(4) 建立Mapper.xml文件
//StudentMapper.xml
SELECT s.id sid,s.name sname,t.name tname
FROM student s,teacher t
WHERe s.tid=t.id
select * from student;
select * from teacher where id=#{id};
//TeacherMapper.xml
//Student .java
package com.sxsl.pojo;
import lombok.Data;
@Data
public class Student {
private int id;
private String name;
private int tid;
}
// Teacher .java
package com.sxsl.pojo;
import lombok.Data;
import java.util.List;
@Data
public class Teacher {
private int id;
private String name;
private List students;
}
(5) dao中的mapper StudentMapper .java
package com.sxsl.dao;
import com.sxsl.pojo.Student;
import java.util.List;
public interface StudentMapper {
List getStudent();
}
TeacherMapper.java
package com.sxsl.dao;
import com.sxsl.pojo.Teacher;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TeacherMapper {
//获取老师信息
//List getTeacher();
//获取老师及该老师有拥有的学生
List getTeacher(@Param( "tid" ) int id);
List getTeacher2(@Param( "tid" ) int id);
}
(5) dao下的mapper.xml TeacherMapper.xml
SELECT s.id sid,s.name sname,t.name tname,t.id tid
FROM student s,teacher t
WHERe s.tid=t.id
and t.id=#{tid};
select * from teacher where id=#{tid};
select * from student where tid=#{tid};