第一步)先用IDEA创建MAVEN项目,参考上图步骤。
QQ图片20190108151012.png
第二步)接着填写grounpId 一般是公司机构的简写,artifactid 指代项目名称,后续步骤默认不改一路直点到FInish。 QQ图片20190108151741.png
第三步)打开pom.xml文件,在依赖里面添加2处依赖,在这里你也可以查找下你本地的MAVEN库里面版本是什么,然后填进去,如果artifactid有红字一般是这个库没导进去
QQ图片20190108152458.png
QQ图片20190108152504.png
第四步)一般出来结构图如上,可能最新版本IDEA没有resources,那么需要手动添加一个文件夹,再把它右键设置标识为resources root.
第五步)新建一个实体类Person。具体代码如下(数据库自己另行建一个对应字段的表)
public class Person {
private int id;
private String userName ;
private int age ;
private String mobilePhone ;
public Person(){}
public Person(int id,String userName, int age, String mobilePhone) {
this.id = id;
this.userName = userName;
this.age = age;
this.mobilePhone = mobilePhone;
}
public String getUserName() {
return userName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
@Override
public String toString() {
return "Person{" +
"userName='" + userName + '\'' +
", age=" + age +
", mobilePhone='" + mobilePhone + '\'' +
'}';
}
}
第六步)有了实体和数据库表以后当然是用Mybatis关联映射。我们新建2个配置文件到resources,一个是数据库配置信息,另一个是Mybatis配置信息。
我的数据库配置mysql.properties参考如下:
driver:com.mysql.jdbc.Driver
url:jdbc:mysql://localhost:3306/nobody
username:root
password:123456
mybatis.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>
<properties resource="mysql.properties"></properties>
<typeAliases>
<typeAlias type="com.luban.model.Person" alias="Person"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/Person.xml"/>
</mappers>
<!-- Continue going here -->
</configuration>
这个配置有个主意地方就是 <typeAliases>不要放到environments 的下面,不然会报莫名错误,原本我是想放到mappers 上面好看点但是发现报错,具体原因可能是读取时候有顺序。
typeAlias 里面type是指代项目中的类的全名,alias是别名。
mapper是对应的映射位置(就是相对于resources文件夹)。中间的数据库配置用了占位符,读取刚才数据库配置文件。
第七步)数据库映射完毕后接着书写数据库操作脚本Person.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.luban">
<insert id="insertPerson" parameterType="Person" >
INSERT INTO PERSON(ID,USERNAME,AGE,MOBILEPHONE)VALUES (#{id},#{userName},#{age},#{mobilePhone})
</insert>
<select id="queryById" parameterType="int" resultType="Person">
SELECT * FROM PERSON WHERE ID=#{id}
</select>
<update id="updatePerson">
UPDATE PERSON SET USERNAME=#{userName},AGE=#{age},MOBILEPHONE=#{mobilePhone} WHERE ID=#{id}
</update>
</mapper>
我的数据库表如下
QQ图片20190108155340.png
第八步)编写一个测试方法,具体如下:
public class App
{
public static void main( String[] args )
{
String resources="mybatis-config.xml";
Reader reader=null;
try {
reader=Resources.getResourceAsReader(resources);
SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
SqlSession session=sqlMapper.openSession();
Person user=session.selectOne("queryById",1);
System.out.println(user.getUserName());
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
最后是项目整体结构图:
QQ图片20190108155617.png
启动项目查看控制台信息如下:
QQ图片20190108155744.png
完毕!
网友评论