使用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);

     this.deleteUser(user);

  }
  public void deleteUser (Useruser)  {

     try {
         // 创建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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 军训赶上大姨妈怎么办 军训时大姨妈怎么办 手机静音找不到了怎么办 论文被别人抄袭怎么办 冒充网警诈骗怎么办 南师大自发挂了怎么办 中学生沉迷手机游戏怎么办? 孩子花钱玩游戏怎么办 mykung充不了电怎么办 脑出血恢复期身体软怎么办 腿里面有积水怎么办 手臂伤筋了怎么办 想打羽毛球没人怎么办 对看书没有兴趣怎么办 痴呆老人晚上闹怎么办 高中毕业证没拿怎么办 高考志愿同分怎么办 儿童吃虾过敏怎么办 滑板湿水了怎么办 老员工不听指挥怎么办 手机显示连接itunes怎么办 苹果手机下载不信任怎么办 暗影格斗3进不去怎么办 喝酒第二天头痛怎么办 加油忘记拔枪怎么办 刷机完成后怎么办 苹果8按键音太小怎么办 电脑蓝屏出英文怎么办 win10蓝屏重启怎么办 苹果手机变蓝屏怎么办 nga账号声望不足怎么办 鬃狮蜥胆小咬人怎么办 小狗拉稀脱水了怎么办 泰迪刚到家老叫怎么办 开车遇到拉死人怎么办 斯诺克解不到球怎么办 颈椎和腰椎不好怎么办 车祸肇事者不赔偿怎么办 交强险自赔吃亏怎么办 交通事故保险不结案怎么办 马蚁借呗超出一天还款怎么办