关于mybatis学习及本人遇到报错问题——适合初学者
来源:互联网 发布:数据库课程 编辑:程序博客网 时间:2024/06/10 03:10
刚刚学习了一下mybatis3.3.0框架问题,自己想记录一下东西,同时遇到一些问题跟大家分享学习!
首先配置conf.xml,把xml放置是src目录下
<?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="Admin" type="com.sw.scool.entity.Admin"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="org.postgresql.Driver" /> <property name="url" value="jdbc:postgresql://localhost:5432/scool" /> <property name="username" value="postgres" /> <property name="password" value="longrise" /> </dataSource> </environment> </environments> <mappers> <!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml--> <mapper resource="com/sw/scool/mapping/AdminMapper.xml"/> <!-- java累 注解查询 class指向类路径 --> <mapper class="com.sw.scool.mapping.AdminMapp" /> </mappers> </configuration>数据库配置配置你自己的地址就可以了,建立实体类,可以根据自己的需求来写
下一步映射mybatis的sql
建立adminMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀) --><mapper namespace="com.sw.scool.mapping"> <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 --> <!-- 根据id查询得到一个user对象 --> <select id="getAdmin" resultType="com.sw.scool.entity.Admin"> select id,username,password from Admin where id=#{id} </select> <insert id="insetOne" parameterType="Admin"> insert into Admin (id,username,password) values (#{id},#{username},#{password}) </insert> <update id="updateOne"> </update></mapper>测试代码test.java
package com.sw.scool.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.List;
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.sw.scool.entity.Admin;
import com.sw.scool.mapping.AdminMapp;
public class Test {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
//读取配置文件数据、实体类xml执行方法
static{
try{
reader = Resources.getResourceAsReader("conf.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch(Exception e){
e.printStackTrace();
}
}
public static SqlSessionFactory getSession(){
return sqlSessionFactory;
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try {
//查询id为1的数据,只能查一个对象
Admin user = session.selectOne("com.sw.scool.mapping.getAdmin","1");
System.out.println(user);
// //新增一条数据
// Admin a = new Admin();
// a.setId("3");
// a.setPassword("89we");
// a.setUsername("shucc");
// int count = session.insert("com.sw.scool.mapping.insetOne",a);
// System.out.println(count);
// AdminMapp mapper=session.getMapper(AdminMapp.class);
// Admin admin=mapper.getAdmin("2");
// System.out.println(admin);
} finally {
session.close();
}
}
}
如果配置成功后台打印
下来我们来用注解的形式代替xml文件,一般简单的查询我们可以直接用注解直接完成更加方法,看看直接实际需要
package com.sw.scool.mapping;
//import static org.apache.ibatis.jdbc.SelectBuilder.*;
//import static org.apache.ibatis.jdbc.SqlBuilder.*;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.sw.scool.entity.Admin;
public interface AdminMapp{
@Select("SELECT * FROM Admin WHERE id = #{id}")
Admin getAdmin(@Param("id") String id);
}
调试过程中有可能出现出现这样的错误
那是因为你的conf.xml文件文件指向有错误,没有配置java类的路径
配置成功后调试将两者方式成为可能
- 关于mybatis学习及本人遇到报错问题——适合初学者
- 本人小白一枚,刚学习SpringMVC+MyBatis,遇到了一个问题一直报错 **No mapping found for HTTP request with URI**
- 关于整数划分问题(本人是初学者)
- 关于if-else配对的就近原则问题(适合初学者)
- 关于php中laravel框架的学习--适合菜鸟初学者
- 本人遇到的关于namespace的一点小问题总结
- 软件测试基础知识——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- Linux入门——适合初学者
- (初学者)关于Python学习中Windows环境中遇到的info-zip问题的解决
- C++学习(适合初学者)
- Junit4测试学习---适合初学者
- mssql与mysql基本语法以及其他的区别
- jsp页面报错,无法定位问题
- 子类覆盖父类的成员变量
- Git权威指南第一章 版本控制的前世今生(一)
- UVA 494 Kindergarten Counting Game
- 关于mybatis学习及本人遇到报错问题——适合初学者
- opencv目标跟踪:三帧差分法
- 蓝桥杯 基础练习 01字串
- jquery阻止事件冒泡 点击
- Unity Shaders and Effects Cookbook (2-1) 修改 UV 坐标实现纹理贴图的滚动 模拟水流效果
- 5.ARM体系结构要点总结
- 蓝桥杯 基础练习 字母图形
- Nginx初步介绍
- latex自定义命令