今天学习Mybatis,也遇到了很多问题,在这里都记下来:
开发mybatis程序的步骤:
1.配置mybati:
conf.xml:配置数据库信息和需要加载的映射文件
导入jar包mybatis.jar,mysql.jar
2.编写表和类
3.映射文件xxxMapper.xml :增删改查标签
4.书写测试类:
session.selectOne(“需要查询的namespace.id”,“sql的参数值”)
我遇到的问题:
idea无法创建一个普通的xml文件
代码演示:
项目结构:
Person.class
package whpu.entity;
public class Person {
private int id;
private String name;
private int age;
public Person() { }
public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age; }
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return id+","+name+","+age;
}
}
personMapper.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="whpu.entity.personMapper">
<!--输入类型是整数,返回是person-->
<select id="queryPersonById" resultType="whpu.entity.Person" parameterType="int">
select * from person_id where id = #{id}
</select>
</mapper>
conf.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/person?serverTimezone=UTC"/>
<property name="username" value="yucan"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--加载映射文件-->
<!--路径采用/,类采用.-->
<mapper resource="whpu/entity/personMapper.xml"/>
</mappers>
</configuration>
TestMybatis.class
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import whpu.entity.Person;
public class TestMabits {
public static void main(String[] args) {
try {
//加载Mybatis配置文件(为了访问数据库)
Reader reader=Resources.getResourceAsReader( "conf.xml" );
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build( reader );
//session -connection
SqlSession sqlSession=sqlSessionFactory.openSession();
String statement="whpu.entity.personMapper.queryPersonById";
Person person=sqlSession.selectOne( statement ,1);
System.out.println( person.toString() );
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}