这几天一直在探究mybaits 简单的操作基本掌握了 但是如果数据库中的表名和实体类的类名中的字段 名称不一样 就会造成空指针异常
但是你打印集合中是否有元素 它会显示 有元素 但是如果继续输出属性就会报空指针异常
类的映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.dragon.entity.User">
<!-- 配置orm映射 确保数据库中的列能和bean中的列相对应 -->
<resultMap type="User" id="user_orm">
<id property="userId" column="user_id"/>
<result property="userName" column="user_name"></result>
<result property="userPassword" column="user_password"></result>
</resultMap>
<!-- 查询语句 -->
<select id="selectAll_user" parameterType="User" resultMap="user_orm" >
SELECT user_id ,user_name ,user_password FROM UserInfo
</select>
</mapper>
只要设置两个属性相关联 返回的resultMap相关连就可以了
类的属性
package com.dragon.entity;
import java.io.Serializable;
/**
* 用户实体类
* @author Administrator
*
*/
public class User implements Serializable {
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
/**
*
*/
private static final long serialVersionUID = 1L;
private int userId;
private String userName;
private String userPassword;
public User() {
super();
}
}
数据库中的表的字段
---------创建表
CREATE TABLE UserInfo (
user_id number(5) primary key not null,
user_name nvarchar2(50) not null,
user_password nvarchar2(50)
);
commit;
insert into UserInfo values(1,'1001','111111');
insert into UserInfo values(2,'1002','111111');
insert into UserInfo values(3,'1003','111111');
insert into UserInfo values(4,'1004','111111');
insert into UserInfo values(5,'1005','111111');
commit;
SELECT * FROM UserInfo;
<wbr></wbr>
相关推荐
在使用MyBatis框架进行Java开发时,常常会遇到数据库表字段名与实体类属性名不一致的情况。这种情况通常是因为数据库设计规范与编程语言的命名习惯不同,或者是为了避免SQL注入等问题而采取的措施。本压缩包文件...
在使用MyBatis进行数据持久化操作时,有时会遇到数据库表字段名与Java实体类属性名不一致的情况。这可能会导致映射问题,影响到数据的正常读写。为了解决这种冲突,MyBatis提供了一些灵活的映射机制。下面我们将详细...
1. **实体类(Entity Class)**:实体类是数据库表的Java对象表示,通常包含与数据库表字段相对应的属性。这个工具能够根据数据库表结构自动生成对应的实体类,包括属性、getter和setter方法,以及注解(如`@Table`...
生成的Java实体类通常包含与数据库表字段对应的属性,以及getter和setter方法。Mapper接口则包含了与数据库交互的SQL语句,这些SQL语句在XML配置文件中定义,可以是简单的CRUD操作,也可以是复杂的查询。使用Mybatis...
"Mybatis学习(四)解决表字段名和实体类属性名不相同的冲突.docx"可能讨论了如何处理数据库字段名与Java实体类属性名不一致的情况。Mybatis通过别名(aliases)或者注解(@Column)来实现字段映射,使得两者可以...
通过配置生成器的参数,指定数据源、目标包路径等,执行后即可得到与数据库表字段一一对应的实体类,这些类包含了字段注解,方便后续的映射操作。 4. **Mapper接口生成** 同样,Mybatis-Plus也能生成对应的Mapper...
这些方法的签名会根据表字段和业务需求自动确定。 5. **XML文件生成**:与Mapper接口相对应的XML文件包含了SQL语句的具体实现。MBG会根据数据库表结构自动生成基本的SQL语句,如SELECT * FROM table,然后你可以...
实体类需要包含与数据库表字段相对应的属性和getter/setter方法,以便Mybatis能通过反射进行操作。 5. **属性文件**:如`SqlMap.properties`,通常用于存储数据库连接的相关配置,包括驱动类、URL、用户名和密码。 ...
在Mybatis中,实体类通常包含与数据库表字段相对应的属性,并且使用getter和setter方法。自动生成的实体类方便开发者直接操作对象,而不是直接与数据库交互。 4. **数据访问对象(DAO)**: DAO接口定义了对数据库...
在Mybatis中,POJO类通常包含与表字段相对应的属性,以及对应的getter和setter方法。这些对象用于在业务层和数据层之间传输数据。 3. **DAO**:DAO层负责处理与数据库相关的操作,它实现了Mapper接口。在Mybatis中...
- Java实体类:每个表对应一个实体类,属性与数据库表字段一一对应,提供了getter和setter方法,便于Java编程操作。 - Mapper接口:定义了SQL查询和更新的方法,每个方法对应XML文件中的一个SQL语句。 - Mapper ...
在MyBatis中,每个数据库表通常对应一个POJO类,类中的属性与表字段一一对应。生成工具能根据表结构自动生成对应的POJO类,包括属性、getter和setter方法,免去了开发者手动创建的麻烦。 2. XML:在MyBatis中,SQL...
3. Bean类:生成与数据库表字段对应的Java实体类,包含属性和getter/setter方法,便于数据绑定和传输。 4. Controller层:生成Spring MVC或其它MVC框架的控制器类,处理HTTP请求,调用Service方法并返回响应结果。 5...
它们包含了表字段对应的属性,并提供了getter和setter方法,用于数据的存取。 4. **代码生成器**:MyBatis提供了一个强大的代码生成器(MyBatis Generator,MBG),可以根据数据库表结构自动生成Mapper接口、Mapper...
在MyBatis中,POJO包含了与数据库表字段对应的属性和getter/setter方法,用于封装和解封数据。通过这个一键生成工具,我们可以快速创建符合需求的POJO类,避免手动编写大量的样板代码。 2. **DAO(Data Access ...
当使用MyBatis时,通常每个数据库表都会对应一个实体类,这个实体类会包含表字段对应的属性以及getter和setter方法。自动生成功能可以快速地根据数据库表结构生成这些类,避免了开发者逐个手工创建的繁琐过程。 ...
3. **实体类(Entity Class)**:实体类是数据库表的Java对象表示,MBG会为每个表生成对应的实体类,包括属性(字段)和getter/setter方法,属性与数据库表字段一一对应。 使用MBG生成代码,开发者可以避免手动编写...
总之,Mybatis通过注解和XML映射文件等方式提供了强大的实体类和表字段映射功能,使得即使字段名和属性名不一致,也能实现数据的正确交互。在开发过程中,理解并熟练运用这些映射机制,对于提升开发效率和代码质量...
2. **实体类与表的自动关联**:MP能根据实体类自动匹配对应的数据库表,并且根据实体类属性自动对应到表字段,减少了数据库建模和Java代码间的同步工作。 3. **动态SQL**:类似于MyBatis的动态SQL,MyBatis Plus也...
2. **实体类(Entity)**:逆向工程会根据数据库中的表字段生成对应的Java实体类。这些类通常包含私有属性,属性的getter和setter方法,以及注解如`@Table`和`@Column`来映射数据库表和字段。实体类是业务逻辑和数据...