Web开发常用的代码

9 篇文章 0 订阅

上了四年大学,做了关于jsp的课程设计不少于五个,有关于servlet,MVC,Struts等,无论用什么框架,都是对数据库的增删查改。。。数据库都被玩烂了

想记下一些代码,加入以后再用到直接复制,不想花时间自己写了

首先是Bean(这是我看马士兵马老师教学视频 写的,都是这样,我就没有必要重新写了)

public class Category {
	private int id;
	private String name;
	private String description;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	
}
接下来就是Dao(Service名字叫法不一样)

public class CategoryService {
	/*增加*/
	public void add(Category c) {
		Connection conn = DB.createConn();
		String sql = "insert into _category values (null, ?, ?)";
		PreparedStatement ps = DB.prepare(conn, sql);
		try {
			ps.setString(1, c.getName());
			ps.setString(2, c.getDescription());
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
	}
	/*全部数据*/
	public List<Category> list() {
		Connection conn = DB.createConn();
		String sql = "select * from _category";
		PreparedStatement ps = DB.prepare(conn, sql);
		List<Category> categories = new ArrayList<Category>();
		try {
			ResultSet rs = ps.executeQuery();
			Category c = null;
			while(rs.next()) {
				c = new Category();
				c.setId(rs.getInt("id"));
				c.setName(rs.getString("name"));
				c.setDescription(rs.getString("description"));
				categories.add(c);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
		return categories;
	}
	/*删除*/
	public void delete(Category c) {
		deleteById(c.getId());
	}
	/*根据ID删除*/
	public void deleteById(int id) {
		Connection conn = DB.createConn();
		String sql = "delete from _category where id = ?";
		PreparedStatement ps = DB.prepare(conn, sql);
		try {
			ps.setInt(1, id);
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
	}
	/*更新*/
	public void update(Category c) {
		Connection conn = DB.createConn();
		String sql = "update _category set name = ?, description = ? where id = ?";
		PreparedStatement ps = DB.prepare(conn, sql);
		try {
			ps.setString(1, c.getName());
			ps.setString(2, c.getDescription());
			ps.setInt(3, c.getId());
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
	}
	/*根据ID查找*/
	public Category loadById(int id) {
		Connection conn = DB.createConn();
		String sql = "select * from _category where id = ?";
		PreparedStatement ps = DB.prepare(conn, sql);
		Category c = null;
		try {
			ps.setInt(1, id);
			ResultSet rs = ps.executeQuery();
		
			if(rs.next()) {
				c = new Category();
				c.setId(rs.getInt("id"));
				c.setName(rs.getString("name"));
				c.setDescription(rs.getString("description"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
		return c;
	}
一般情况下用到的方法就是这些了,其他再也没有什么明显的方法了

数据库的链接

public class DB {
	public static Connection createConn() {
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost/DataBaseName", "root", "root");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	public static PreparedStatement prepare(Connection conn, String sql) {
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return ps;
	}
	
	public static void close(Connection conn) {
		
		try {
			conn.close();
			conn = null;
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public static void close(Statement stmt) {
		try {
			stmt.close();
			stmt = null;
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public static void close(ResultSet rs) {
		try {
			rs.close();
			rs = null;
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
每次用好数据库记得要关闭资源,以前做web开发的时候没有感觉,做android开发的时候,我还是按照开发jsp的那种方式开发,数据库就有关的有不关的,然后在手机上运行的时候就会出席那“无响应”的提示,原来数据库链接把手机资源耗尽了,相比较而言,电脑资源比较大,数据库的影响对电脑没有多大的影响,但还是要把数据库关上。

上面的三段代码可以说是核心代码了,以下是学习struts2时用到的一些,也是可以用到的

action代码:

public class CategoryAction extends ActionSupport {
	private List<Category> categories;
	private CategoryService categoryService = new CategoryService(); 
	private Category category;
	private int id;
	
	public String list() {
		categories = categoryService.list();
		return SUCCESS;
	}
	public String add() {
		categoryService.add(category);
		return SUCCESS;
	}
	public String update() {
		categoryService.update(category);
		return SUCCESS;
	}
	public String delete() {
		categoryService.deleteById(id);
		return SUCCESS;
	}
	public String addInput() {
		
		return INPUT;
	}
	public String updateInput() {
		this.category = this.categoryService.loadById(id);
		return INPUT;
	}
	public List<Category> getCategories() {
		return categories;
	}
	public void setCategories(List<Category> categories) {
		this.categories = categories;
	}
	public CategoryService getCategoryService() {
		return categoryService;
	}
	public void setCategoryService(CategoryService categoryService) {
		this.categoryService = categoryService;
	}
	public Category getCategory() {
		return category;
	}
	public void setCategory(Category category) {
		this.category = category;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
Struts.xml配置文件(我认为Struts在整个网页中就负责一些跳转,所以里面配置的内容就是一些跳转信息)

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
    "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>
	<!-- <package name="bbs2009_default" extends="struts-default"> <global-exception-mappings> 
		<exception-mapping result="exception_handle" exception="Exception"></exception-mapping> 
		</global-exception-mappings> </package> -->
	<constant name="struts.devMode" value="true"></constant>
	<constant name="struts.custom.i18n.resources" value="bbs2009"></constant>
	<package name="admin" namespace="/admin" extends="struts-default">
		<action name="index">
			<result>/admin/index.html</result>
		</action>
		<action name="*-*" class="com.bjsxt.bbs2009.action.{1}Action"
			method="{2}">
			<result>/admin/{1}-{2}.jsp</result>
			<result name="input">/admin/{1}-{2}.jsp</result>
		</action>
		<action name="lang" class="com.bjsxt.bbs2009.action.LangAction">
			<result>/admin/Login-input.jsp</result>
		</action>
		<!-- <action name="category" class="com.bjsxt.bbs2009.action.CategoryAction"> 
			<result>/admin/category_list.jsp</result> <result name="add_input">/admin/category_add_input.jsp</result> 
			<result name="update_input">/admin/category_update_input.jsp</result> </action> -->
	</package>
	<package name="front" namespace="/" extends="struts-default">
		<default-action-ref name="index" />  <!-- bug!!! -->

		<action name="index" class="com.bjsxt.bbs2009.action.CategoryAction"
			method="list">
			<result>/index.jsp</result>
		</action>
	</package>
</struts>

以上的代码片段以后绝对会用到,如果看这篇的是大一大二的学妹,如果想自己做一个系统出来的一定要记得保存哦!!!绝对有用
!!!!!!!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值