使用Nutz进行简单的增删改查
来源:互联网 发布:linux改用户权限 编辑:程序博客网 时间:2024/04/28 02:18
Nutz是一个免费的JavaEE开源框架,它几乎具备SSH框架所有的功能,它最大的特点是轻量级,所以它将会是SSH框架的一个可尝试的替代品。
Nutz的特点?
· 体积小,轻量级;最新版本的jar文件只有712kb;
· 对JDBC的封装支持; 针对JDBC进行了薄封装;
· 灵活;各个部分独立使用;
· 完整,不零散;它的所有功能均不依赖于第三方jar文件;
· 功能全面;它具有SSH框架拥有的大部分功能。
怎样使用Nutz?
首先,必须下载Nutz的jar文件;Nutz的体积小巧,只有一个jar文件;
然后,创建一个WebProject工程;我们把Nutz.Dao(也就是Nutz的数据持久化)作为Nutz的入门实例;
第一步,创建一个名为NutzDemo的Web Project,将下载的Nutz jar文件添加到Web/lib目录中;
第二步,在src目录下创建一个POJO,利用Nutz的注解为POJO对象的类、字段进行注解,将对象与数据库的表进行映射;
代码如下:
import java.io.Serializable;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Table;
@Table("tbl_user")
public class User implements Serializable {
@Column
@Id
private int uid;
@Column
private String uname;
@Column
private int uage;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname(){
return uname;
}
public void setUname(Stringuname) {
this.uname = uname;
}
public int getUage() {
return uage;
}
public void setUage(int uage) {
this.uage = uage;
}
}
其中@Table注解用于指定与POJO所对应的数据库表;@Column注解用于指定字段与数据库表所对应的列;@Id指定数据表的数字主键,那么字符主键应该用@Name,复合主键应该用@PK。
第三步,配置数据源,因为要使用JNDI来创建数据源对象,并且要在Tomcat服务器下运行该程序,所以我们要对Tomcat安装目录下的conf/context.xml文件配置数据源信息。配置信息如下:
<Context>
……
<!-- MySql 数据库-->
<Resource name="jdbc/NutzDemo" auth="Container"
type="javax.sql.DataSource"maxActive="100" maxIdle="30"
maxWait="10000"username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cheng"/>
……
</Context>
第四步,创建NutDao对象,将POJO对象持久化到数据库中;在这里我们创建一个Servlet,我们通过访问Servlet来初始化DataSource并且对对象进行持久化操作;
代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {
try {
// 初始化JNDI上下文,创建DataSource对象
Context initContext = new InitialContext();
Context context = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao对象
Dao dao = newNutDao(dataSource);
// 创建一个User对象
User user =new User();
user.setUname("cheng");
user.setUage(20);
// 持久化一条数据到数据库中
user =dao.insert(user);
System.out.println("添加到数据库中的数据为:" + user.getUname());
} catch (NamingException) {
e.printStackTrace();
}
}
此时就利用Nutz进行了持久化操作。之后,我们进行删除操作,其代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
// 创建User对象
User user = new User();
user.setUid(5);
// 创建JNDI数据源
Context initContext = new InitialContext();
Context context = (Context)initContext.lookup("java:comp/env");
DataSource dataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao对象
Dao dao = newNutDao(dataSource);
// 删除
dao.delete(user);
} catch (NamingExceptione) {
e.printStackTrace();
}
}
之后,进行修改操作,代码如下:
public void do Post(HttpServletRequestrequest, HttpServletResponse response) throws ServletException,IOException {
// 创建User对象
User user = this.getUserById(6);
user.setUname("ya");
user.setUage(23);
System.out.println("User:" + user.getUname());
this.updateUser(user);
}
public User getUserById (int uid) {
// 创建User对象
User user = new User();
try {
// 创建JNDI数据源
ContextinitContext = new InitialContext();
Contextcontext = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
user =dao.fetch(User.class,uid);
System.out.println("UserName:" +user.getUname());
} catch (NamingException) {
e.printStackTrace();
}
return user;
}
public void updateUser(Useruser) {
try {
// 创建JNDI数据源
ContextinitContext = new InitialContext();
Contextcontext = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao对象
Dao dao = newNutDao(dataSource);
// 更改
dao.update(user);
} catch (NamingExceptione) {
e.printStackTrace();
}
}
再之后,进行查询操作,代码如下:
protected voiddoPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,IOException {
this.getUserById(2);
}
public User getUserById (int uid)
{
// 创建User对象
User user = new User();
try {
// 创建JNDI的DataSource对象
ContextinitContext = new InitialContext();
Contextcontext = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao
Dao dao = newNutDao(dataSource);
// 查询
user =dao.fetch(User.class,uid);
System.out.println("UserName:" +user.getUname());
} catch (NamingExceptione) {
e.printStackTrace();
}
return user;
}
最后,查询所有数据,代码如下:
public voiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
List<User>userList = this.getAllUser();
for (int i=0;i<userList.size(); i++)
{
User user= userList.get(i);
System.out.println("用户为:" +user.getUname());
}
}
public List<User>getAllUser ()
{
BasicDataSourceds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/cheng");
ds.setUsername("root");
ds.setPassword("root");
ds.setInitialSize(50);
ds.setMaxActive(100);
ds.setMaxIdle(30);
ds.setMaxWait(10000);
// 创建NutzDao对象
Dao dao = new NutDao(ds);
// 创建Sql对象
Sql sql =Sqls.create("select * fromtbl_user");
// 返回多个
sql.setCallback(Sqls.callback.entities());
Entity<User>entity = dao.getEntity(User.class);
sql.setEntity(entity);
dao.execute(sql);
return sql.getList(User.class);
}
Nutz的特点?
· 体积小,轻量级;最新版本的jar文件只有712kb;
· 对JDBC的封装支持; 针对JDBC进行了薄封装;
· 灵活;各个部分独立使用;
· 完整,不零散;它的所有功能均不依赖于第三方jar文件;
· 功能全面;它具有SSH框架拥有的大部分功能。
怎样使用Nutz?
首先,必须下载Nutz的jar文件;Nutz的体积小巧,只有一个jar文件;
然后,创建一个WebProject工程;我们把Nutz.Dao(也就是Nutz的数据持久化)作为Nutz的入门实例;
第一步,创建一个名为NutzDemo的Web Project,将下载的Nutz jar文件添加到Web/lib目录中;
第二步,在src目录下创建一个POJO,利用Nutz的注解为POJO对象的类、字段进行注解,将对象与数据库的表进行映射;
代码如下:
import java.io.Serializable;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Table;
@Table("tbl_user")
public class User implements Serializable {
@Column
@Id
private int uid;
@Column
private String uname;
@Column
private int uage;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname(){
return uname;
}
public void setUname(Stringuname) {
this.uname = uname;
}
public int getUage() {
return uage;
}
public void setUage(int uage) {
this.uage = uage;
}
}
其中@Table注解用于指定与POJO所对应的数据库表;@Column注解用于指定字段与数据库表所对应的列;@Id指定数据表的数字主键,那么字符主键应该用@Name,复合主键应该用@PK。
第三步,配置数据源,因为要使用JNDI来创建数据源对象,并且要在Tomcat服务器下运行该程序,所以我们要对Tomcat安装目录下的conf/context.xml文件配置数据源信息。配置信息如下:
<Context>
……
<!-- MySql 数据库-->
<Resource name="jdbc/NutzDemo" auth="Container"
type="javax.sql.DataSource"maxActive="100" maxIdle="30"
maxWait="10000"username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cheng"/>
……
</Context>
第四步,创建NutDao对象,将POJO对象持久化到数据库中;在这里我们创建一个Servlet,我们通过访问Servlet来初始化DataSource并且对对象进行持久化操作;
代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {
try {
// 初始化JNDI上下文,创建DataSource对象
Context initContext = new InitialContext();
Context context = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao对象
Dao dao = newNutDao(dataSource);
// 创建一个User对象
User user =new User();
user.setUname("cheng");
user.setUage(20);
// 持久化一条数据到数据库中
user =dao.insert(user);
System.out.println("添加到数据库中的数据为:" + user.getUname());
} catch (NamingException) {
e.printStackTrace();
}
}
此时就利用Nutz进行了持久化操作。之后,我们进行删除操作,其代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
// 创建User对象
User user = new User();
user.setUid(5);
this.deleteUser(user);
}
public void deleteUser (Useruser) {
// 创建JNDI数据源
Context initContext = new InitialContext();
Context context = (Context)initContext.lookup("java:comp/env");
DataSource dataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao对象
Dao dao = newNutDao(dataSource);
// 删除
dao.delete(user);
} catch (NamingExceptione) {
e.printStackTrace();
}
}
之后,进行修改操作,代码如下:
public void do Post(HttpServletRequestrequest, HttpServletResponse response) throws ServletException,IOException {
// 创建User对象
User user = this.getUserById(6);
user.setUname("ya");
user.setUage(23);
System.out.println("User:" + user.getUname());
this.updateUser(user);
}
public User getUserById (int uid) {
// 创建User对象
User user = new User();
try {
// 创建JNDI数据源
ContextinitContext = new InitialContext();
Contextcontext = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao
Dao dao = newNutDao(dataSource);
// 根据Id查询user =dao.fetch(User.class,uid);
System.out.println("UserName:" +user.getUname());
} catch (NamingException) {
e.printStackTrace();
}
return user;
}
public void updateUser(Useruser) {
try {
// 创建JNDI数据源
ContextinitContext = new InitialContext();
Contextcontext = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao对象
Dao dao = newNutDao(dataSource);
// 更改
dao.update(user);
} catch (NamingExceptione) {
e.printStackTrace();
}
}
再之后,进行查询操作,代码如下:
protected voiddoPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,IOException {
this.getUserById(2);
}
public User getUserById (int uid)
{
// 创建User对象
User user = new User();
try {
// 创建JNDI的DataSource对象
ContextinitContext = new InitialContext();
Contextcontext = (Context)initContext.lookup("java:comp/env");
DataSourcedataSource = (DataSource)context.lookup("jdbc/NutzDemo");
// 创建NutDao
Dao dao = newNutDao(dataSource);
// 查询
user =dao.fetch(User.class,uid);
System.out.println("UserName:" +user.getUname());
} catch (NamingExceptione) {
e.printStackTrace();
}
return user;
}
最后,查询所有数据,代码如下:
public voiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
List<User>userList = this.getAllUser();
for (int i=0;i<userList.size(); i++)
{
User user= userList.get(i);
System.out.println("用户为:" +user.getUname());
}
}
public List<User>getAllUser ()
{
BasicDataSourceds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/cheng");
ds.setUsername("root");
ds.setPassword("root");
ds.setInitialSize(50);
ds.setMaxActive(100);
ds.setMaxIdle(30);
ds.setMaxWait(10000);
// 创建NutzDao对象
Dao dao = new NutDao(ds);
// 创建Sql对象
Sql sql =Sqls.create("select * fromtbl_user");
// 返回多个
sql.setCallback(Sqls.callback.entities());
Entity<User>entity = dao.getEntity(User.class);
sql.setEntity(entity);
dao.execute(sql);
return sql.getList(User.class);
}
0 0
- 使用Nutz进行简单的增删改查
- 使用nutz进行简单的增删查改操作
- jdbc进行简单的增删改查
- jdbc进行简单的增删改查
- Dom4j的增删改查简单使用
- mybatis 使用简单的增删查改
- jQuery EasyUI+Nutz实现增删改查
- 简单使用GreenDao3.2进行增删改查
- hibernate中进行简单的增删改查
- jdbc进行简单的增删查改(statement)
- JDBC进行简单的增删改查,小结
- Mybatis注解方式进行简单的增删改查
- python2连接数据库进行简单的增删改查
- 今天新学,通过Nutz来对数据库表格进行增删改查。更加简便。
- 使用存储过程进行基本的增删改查
- 关于使用Hibernate 的HQL 语句进行增删改查
- Android 使用SQLite进行数据的增删查改
- 使用MyBatis框架进行数据库的增删改查操作
- 333
- Lua 中模拟 类
- Android权限之sharedUserId和共享签名
- OCP 1Z0 052 132
- 333
- 使用Nutz进行简单的增删改查
- PHP常用字符串函数总结
- 如何子类化(SubclassWindow)窗体
- Mongodb用户和认证 权限总结
- POJ 3411 Paid Roads 简单DFS
- mahout中kmeans算法和Canopy算法实现原理
- 04 mapGoogle 示例 leo
- hdu 1596 find the safest road(乘积最短路)
- PHP常用字符串函数总结