使用mybatis将对象直接持久化到db
Persist object directly to db using mybatis
我是mybatis新手。之前用的是Hibernate ORMframework.Now想用mybatis开发
下面是我的映射器 class,我可以在其中编写应用程序的实际查询。
public interface UserMapper {
@Insert("INSERT into user(id,name,address) VALUES(#{uid}, #{uname}, #{uaddress})")
void insertUser(User user);
}
我正在从前端应用程序请求中获取用户信息。
下面是我的控制器::
@RequestMapping(value = "/userdetails", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody ResponseCodeModel userInfo(@RequestBody User user)
{
session.save(user);//In Hibernate
}
如果我使用 Hibernate,我可以使用 session.save(userObject);
直接将用户对象保存在数据库中
但是在Mybatis中,我需要在mapper查询中映射所有用户参数。
如果我的 table 有 50 个列,那么我需要在查询中提及所有参数,如下所示::
public interface UserMapper {
@Insert("INSERT into user(id,name,address,....50 Coloumn name) VALUES(#{uid}, #{uname}, #{uaddress} ,....50 model attribute name)")
void insertUser(User user);
}
有没有更简单的方法使用 myBatis 将模型对象持久化到数据库中。
Mybatis 是SQLMapper,不是ORM。那你确实要映射了。
如果您插入 table 中的所有列,那么您可以省略列名并以正确的顺序指定值,这很常见 SQL。
我是mybatis新手。之前用的是Hibernate ORMframework.Now想用mybatis开发
下面是我的映射器 class,我可以在其中编写应用程序的实际查询。
public interface UserMapper {
@Insert("INSERT into user(id,name,address) VALUES(#{uid}, #{uname}, #{uaddress})")
void insertUser(User user);
}
我正在从前端应用程序请求中获取用户信息。
下面是我的控制器::
@RequestMapping(value = "/userdetails", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody ResponseCodeModel userInfo(@RequestBody User user)
{
session.save(user);//In Hibernate
}
如果我使用 Hibernate,我可以使用 session.save(userObject);
直接将用户对象保存在数据库中但是在Mybatis中,我需要在mapper查询中映射所有用户参数。
如果我的 table 有 50 个列,那么我需要在查询中提及所有参数,如下所示::
public interface UserMapper {
@Insert("INSERT into user(id,name,address,....50 Coloumn name) VALUES(#{uid}, #{uname}, #{uaddress} ,....50 model attribute name)")
void insertUser(User user);
}
有没有更简单的方法使用 myBatis 将模型对象持久化到数据库中。
Mybatis 是SQLMapper,不是ORM。那你确实要映射了。
如果您插入 table 中的所有列,那么您可以省略列名并以正确的顺序指定值,这很常见 SQL。