标签:mybatis
1.myeclipse10.7
2.数据库:mysql
3.jdk:jdk1.8
4.jar包:mybatis3.2.0.jar
mysql-connector-java-5.1.22-bin.jar log4j-1.2.16.jar
将所需Jar包都拷贝到工程的WebRoot\WEB-INF\lib目录下(或者建一个java工程)
(1)src->com.roles
(2)src->com.roles->student
(3)src->com.roles->student->model
(4)src->com.roles->student->DAO(预留,所以这一节可以不建teacher这个包)
(5)src->com.roles->teacher(预留,所以这一节可以不建teacher这个包)
(6)src->config
(7)src->config->mybatis
(8)src->config->spring(预留,所以这一节可以不建spring这个包)
(1)在src->com.roles->student->model下建一个Student类
<给不熟悉java或者myeclipse的朋友一个建议:在代码界面邮件点击,选择Source->Generate Getters and Setters..可以自动生成get()和set()函数>
package com.roles.student.model;
/**
*
* @author code陈
*
*/
public class Student {
private String name;
//性别 1:男 0:女
private String gender;
private int age;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
(2)在src目录下新建一个Configuration.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>
<typeAliases>
<typeAlias alias="Student" type="com.roles.student.model.Student"/>
</typeAliases>
<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://127.0.0.1:3306/mybatis001" />
<property name="username" value="root"/>
<property name="password" value="mysql"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="config/mybatis/student.xml"/>
</mappers>
</configuration>
(a)<typeAlias>将Student类取了一个别名,目的是为了方便,而不是必须得,如果不使用别名,就需要在任何需要Student的地方使用"com.roles.student.model.Student",显然别名方便多了。
(b)<environment>主要是初始化连接的数据库的信息:ip、端口、数据库表、用户名和密码等等
(c)<mappers>定义了sql查询语句的配置文件(比如student.xml),其实这个配置文件还能有表中字段名和实体类属性的映射关系,这个将在后面会学习到。
(3)在src->config->mybatis下新建一个student.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="com.roles.student.model.studentMapper">
<select id="getStudent" parameterType="String" resultType="Student">
select * from student where id = #{id}
</select>
</mapper> <解释>
(a)namespace有点像package的意思,而都比较习惯用XXMapper的形式
(b)<select>这个就是sql语句了,id=“ getStudent”这个id相当于一个函数名字,如果我们要使用这条查询语句,调用这个id即可,后面将会用到。parameterType则是查询条件的类型,String、id、map等等,这个很重要,resultType查询结果返回类型,这个需要和Configuration.xml中相应类的别名保持一致。
(4)测试:在src目录下新建一个test包,包下新建一个test类(过程可以不用这么复杂,只是为了好管理代码而已)
package test;
import config.mybatis.*;
import java.io.Reader;
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 com.roles.student.model.Student;
import java.io.IOException;
public class test {
/***
* 获得MyBatis SqlSessionFactory
* SqlSessionFactory 负责创建SqlSession ,一旦创建成功,就可以用SqlSession实例来执行映射语句
* @return
*/
private static SqlSessionFactory getSessionFactory(){
SqlSessionFactory sessionFactory=null;
String resource="Configuration.xml";
try {
sessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
} catch (IOException e) {
e.printStackTrace();
}
return sessionFactory;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SqlSession session=getSessionFactory().openSession();
try{
//参数:映射文件的命名空间+sql语句id
Student student = (Student)session.selectOne("com.roles.student.model.studentMapper.getStudent","2015051701");
System.out.println("姓名:"+student.getName());
String gender=student.getGender().equals("1")?"男":"女";
System.out.println("性别:"+gender);
System.out.println("年龄:"+student.getAge());
System.out.println("学号:"+student.getId());
}
catch (Exception e) {
e.printStackTrace();
}
finally{
session.close();
}
}
}
(5)整个工程目录结构如下:
(6)运行结果
<如果出现了警告,诸如:log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging)>
解决方法:在src目录下新建一个log4j.properties,内容为:
# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE, LOGFILE
#log4j.rootCategory=INFO, CONSOLE,
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, LOGFILE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy:MM:dd HH:mm:ss:SSS} %-5p [%c{1}] %m%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGFILE.File=c\:konbao.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy:MM:dd HH:mm:ss:SSS} [%24F:%-4L:%-5p]%x %m%n
以上内容为本人在学习mybatis时整理的笔记,个人理解的结果,如有问题,欢迎朋友们指正。
mybatis学习笔记(1):搭建开发环境,以及mybatis各个配置文件之间的关系
标签:mybatis
原文地址:http://blog.csdn.net/chentravelling/article/details/45792419