`
txazo
  • 浏览: 79440 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Servlet + JavaBean连接数据库

    博客分类:
  • J2EE
阅读更多
1. JDBC连接数据库
2. C3P0连接数据库
3. DBCP连接数据库
4. Tomcat数据源
5. JBoss数据源
6. WebLogic数据源
7. Connection操作数据库
8. JDBC事务处理
9. Tomcat JTA
10. JBoss JTA
11. WebLogic JTA

1. JDBC连接数据库
直接使用JDBC API获得Connection连接。
public class ConnectionUtil {

	private static final String DRIVER = "com.mysql.jdbc.Driver";
	private static final String URL = "jdbc:mysql://127.0.0.1:3306/txazo";
	private static final String USER = "root";
	private static final String PASSWORD = "root";

	static {
		try {
			Class.forName(DRIVER);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private ConnectionUtil() {
	}

	public static synchronized Connection getConnection() {
		Connection connection = null;
		try {
			connection = DriverManager.getConnection(URL, USER, PASSWORD);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}

}

2. C3P0连接数据库
C3P0连接池。
public class ConnectionUtil {

	private static ComboPooledDataSource dataSource = null;

	static {
		try {
			dataSource = new ComboPooledDataSource();
			dataSource.setDriverClass("com.mysql.jdbc.Driver");
			dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1/txazo");
			dataSource.setUser("root");
			dataSource.setPassword("root");
            dataSource.setMinPoolSize(2);
			dataSource.setMaxPoolSize(20);
			dataSource.setInitialPoolSize(4);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private ConnectionUtil() {
	}

	public static synchronized Connection getConnection() {
		Connection connection = null;
		try {
			connection = dataSource.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}

}

3. DBCP连接数据库
DBCP连接池。
public class ConnectionUtil {

	private static BasicDataSource dataSource = null;

	static {
		dataSource = new BasicDataSource();
		dataSource.setDriverClassName("com.mysql.jdbc.Driver");
		dataSource.setUrl("jdbc:mysql://127.0.0.1/txazo");
		dataSource.setUsername("root");
		dataSource.setPassword("root");
		dataSource.setMaxActive(20);
		dataSource.setInitialSize(4);
	}

	private ConnectionUtil() {
	}

	public static synchronized Connection getConnection() {
		Connection connection = null;
		try {
			connection = dataSource.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}

}

4. Tomcat数据源
1)TOMCAT_HOME/conf/context.xml的<Context>节点下添加如下内容:
<Resource name="jdbc/txazo" 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/txazo"/>

2)WEB-INF/web.xml中添加如下内容:
<resource-ref>
    <res-ref-name>jdbc/txazo</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

3)Connection连接工具类
public class ConnectionUtil {

	private static DataSource dataSource = null;

	static {
		Context context = null;
		try {
			context = new InitialContext();
			dataSource = (DataSource) context
					.lookup("java:comp/env/jdbc/txazo");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private ConnectionUtil() {
	}

	public static synchronized Connection getConnection() {
		Connection connection = null;
		try {
			connection = dataSource.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}

}

5. JBoss数据源
1)配置数据源
JBOSS_HOME/docs/examples/jca/mysql-ds.xml复制到JBOSS_HOME/server/default/deploy下,重命名为txazo-ds.xml,并修改内容如下:
<?xml version="1.0" encoding="UTF-8"?>

<datasources>
  <local-tx-datasource>
    <jndi-name>txazo</jndi-name>
    <connection-url>jdbc:mysql://127.0.0.1:3306/txazo</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>
        org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
    </exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

2)Connection连接工具类
public class ConnectionUtil {

	private static DataSource dataSource = null;

	static {
		Context context = null;
		try {
			context = new InitialContext();
			dataSource = (DataSource) context.lookup("java:/txazo");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private ConnectionUtil() {
	}

	public static synchronized Connection getConnection() {
		Connection connection = null;
		try {
			connection = dataSource.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}

}

6. WebLogic数据源
1)配置数据源
使用WebLogic控制台配置数据源txazo。
2)Connection连接工具类
public class ConnectionUtil {

	private static DataSource dataSource = null;

	static {
		Context context = null;
		try {
			context = new InitialContext();
			dataSource = (DataSource) context.lookup("txazo");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private ConnectionUtil() {
	}

	public static synchronized Connection getConnection() {
		Connection connection = null;
		try {
			connection = dataSource.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}

}

7. Connection操作数据库
1)增删改操作
Connection connection = null;
PreparedStatement statement = null;

try {
    connection = ConnectionUtil.getConnection();
    statement = connection.prepareStatement("delete from user");
    statement.executeUpdate();
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

2)查询操作
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;

try {
    connection = ConnectionUtil.getConnection();
    statement = connection.prepareStatement("select * from user");
    resultSet = statement.executeQuery();
    while (resultSet.next()) {
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
        if (resultSet != null) {
            resultSet.close();
        }
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

8. JDBC事务处理
Connection connection = null;
PreparedStatement statement = null;

try {
    connection = ConnectionUtil.getConnection();
    connection.setAutoCommit(false);
    statement = connection.prepareStatement("delete from user");
    statement.executeUpdate();
    connection.commit();
} catch (Exception e) {
    e.printStackTrace();
  try {
        connection.rollback();
    } catch (Exception exception) {
        exception.printStackTrace();
    }
} finally {
    try {
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

9. Tomcat JTA
1)下载JTOM,添加相应Jar包到TOMCAT_HOME/lib下。
2)TOMCAT_HOME/lib/carol.properties:
carol.protocols=jrmp
carol.jvm.rmi.local.call=true
carol.start.jndi=false
carol.start.ns=false
carol.jndi.java.naming.factory.url.pkgs=org.apache.naming

3)TOMCAT_HOME/conf/context.xml的<Context>节点下添加如下内容:
<Resource name="jdbc/txazo" auth="Container" type="javax.sql.DataSource"
    factory="org.objectweb.jotm.datasource.DataSourceFactory"
    maxActive="100" maxIdle="30" maxWait="10000"
    username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/txazo"/>
			   
<Resource name="UserTransaction" 
    auth="Container" 
    type="javax.transaction.UserTransaction" />

<Transaction factory="org.objectweb.jotm.UserTransactionFactory" 
    jotm.timeout="60" />

4)JTA编程事务
UserTransaction transaction = null;
Connection connection = null;
PreparedStatement statement = null;

try {
    Context context = new InitialContext();
    transaction = (UserTransaction) context.lookup("java:comp/UserTransaction");
    transaction.begin();

    connection = ConnectionUtil.getConnection();
    connection.setAutoCommit(false);
    statement = connection.prepareStatement("delete from user");
    statement.executeUpdate();

    transaction.commit();
} catch (Exception e) {
    e.printStackTrace();
  try {
        transaction.rollback();
    } catch (Exception exception) {
        exception.printStackTrace();
    }
} finally {
    try {
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

10. JBoss JTA
JBoss中JTA事务管理器的JNDI名为UserTransaction。
UserTransaction transaction = null;
Connection connection = null;
PreparedStatement statement = null;

try {
    Context context = new InitialContext();
    transaction = (UserTransaction) context.lookup("UserTransaction");
    transaction.begin();

    connection = ConnectionUtil.getConnection();
    connection.setAutoCommit(false);
    statement = connection.prepareStatement("delete from user");
    statement.executeUpdate();

    transaction.commit();
} catch (Exception e) {
    e.printStackTrace();
  try {
        transaction.rollback();
    } catch (Exception exception) {
        exception.printStackTrace();
    }
} finally {
    try {
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

11. WebLogic JTA
WebLogic中JTA事务管理器的JNDI名为javax.transaction.UserTransaction。
UserTransaction transaction = null;
Connection connection = null;
PreparedStatement statement = null;

try {
    Context context = new InitialContext();
    transaction = (UserTransaction) context
        .lookup("javax.transaction.UserTransaction");
    transaction.begin();

    connection = ConnectionUtil.getConnection();
    connection.setAutoCommit(false);
    statement = connection.prepareStatement("delete from user");
    statement.executeUpdate();

    transaction.commit();
} catch (Exception e) {
    e.printStackTrace();
  try {
        transaction.rollback();
    } catch (Exception exception) {
        exception.printStackTrace();
    }
} finally {
    try {
        if (statement != null) {
            statement.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
分享到:
评论
1 楼 wang1270944973 2015-06-10  
很好的文章 学习了

相关推荐

    简单的jsp+servlet+javaBean访问mysql数据库

    总的来说,这个项目展示了如何利用JSP、Servlet和JavaBean的协同工作来实现对MySQL数据库的访问。这种分层架构使得代码更易于维护和扩展,同时也遵循了MVC(Model-View-Controller)设计模式的思想,即模型处理数据...

    mysql分页 jsp实现 servlet+javabean+jsp三级架构

    然后,文章详细介绍了如何使用Java实现分页技术,包括定义分页接口、实现分页接口、连接数据库等步骤。 一、分页技术的重要性 在软件开发中,分页技术是一个非常常用的功能,特别是在处理大量数据时。例如,在公告...

    Jsp+Servlet+JavaBean+JDBC简单登录实例

    JDBC是Java连接数据库的标准API,它提供了操作数据库的一系列接口和类。在登录系统中,我们需要将用户的登录信息与数据库中的记录进行比对。首先,我们需要在项目中配置数据库连接,然后使用JDBC API执行SQL查询,从...

    JSP+Servlet+JavaBean+JDBC示例程序

    在JSP+Servlet+JavaBean的架构中,JDBC通常用于实现数据的CRUD操作,连接数据库,执行SQL语句,并将结果返回给前端。 在这个“JSP+Servlet+JavaBean+JDBC示例程序”中,我们可以预期以下关键组件: 1. **JSP页面**...

    JSP+Servlet+Javabean+Mysql 网上书店管理系统.zip

    网上书店管理系统是基于Web的典型应用,它利用了Java技术栈中的关键组件,包括JSP(JavaServer Pages)、Servlet、Javabean以及MySQL数据库。这些技术共同构建了一个高效、可扩展的后端系统,用于处理用户交互、业务...

    jsp+servlet+javabean jdbc连接数据库 用户登录

    【标题】"jsp+servlet+javabean jdbc连接数据库 用户登录"所涉及的知识点主要集中在Web开发中的几个关键组件和技术上。JSP(JavaServer Pages)是Java平台上的动态网页技术,Servlet是Java用于处理HTTP请求的服务端...

    java网上商城项目源码(jsp.servlet+javabean+mysql+jdbc)

    这个项目利用了JSP(Java Server Pages)、Servlet、JavaBean以及MySQL数据库和JDBC(Java Database Connectivity)进行开发。以下是关于这些技术及其在该项目中应用的详细解释: 1. **JSP(Java Server Pages)**...

    jsp+servlet+javabean+jdbc+mysql实现增删改查和分页功能

    5.Servlet + JSP +JavaBean + JDBC(DBUtils)+ mysql 6.数据库 create database day19; use day19; create table t_customer( id varchar(40) primary key, username varchar(20), gender varchar(10), ...

    基于JSP+Servlet+JavaBean实现的图书管理系统

    在Servlet中,可以通过JDBC创建数据库连接,执行SQL语句(如SELECT、INSERT、UPDATE、DELETE),并处理查询结果。 **5. MVC(Model-View-Controller)设计模式** 图书管理系统采用MVC模式进行架构设计。Model(模型...

    jsp+servlet+javabean成绩管理系统

    采用jsp+servlet+javabean,jsp负责少量的页面处理,以servlet为主。 结构清晰明了,未对页面做美工处理,因此html和javascript代码很少, 详细介绍了jdbc的常用api以及数据库中的表的级联。 开发调试平台...

    JSP+Servlet+JavaBean制作简单留言板

    4. 数据库操作:JavaBean通过JDBC(Java Database Connectivity)接口连接数据库,执行SQL语句,如INSERT插入新留言,SELECT获取留言列表。使用预编译的PreparedStatement可以防止SQL注入。 5. 会话管理:为了保持...

    jsp+servlet+javabean_教学管理系统

    在Servlet中,通过Statement或PreparedStatement对象执行SQL语句,JavaBean则封装了数据对象,便于与数据库表进行映射。 7. **安全性与优化**: 为了提高系统的安全性,需要对用户输入进行校验,防止SQL注入攻击。...

    基于JSP+Servlet+JavaBean开发商品管理系统.zip

    此外,JDBC(Java Database Connectivity)是Java连接数据库的标准接口,用于实现系统与数据库的交互。在商品管理系统中,通过JDBC执行SQL语句来完成数据的增删改查,保证了数据的一致性和完整性。 总结来说,这个...

    JSP+Servlet+JavaBean__数据库登录验证

    本项目“JSP+Servlet+JavaBean__数据库登录验证”旨在实现一个基本的用户登录验证功能,这涉及到前端界面设计、后端逻辑处理以及与数据库的交互。以下是关于这些知识点的详细说明: 1. **JSP(JavaServer Pages)**...

    jsp+Servlet+javaBean实现登录注册

    在这个项目中,myEclipse用于编写和管理JSP、Servlet以及JavaBean代码,还支持数据库连接和SQL操作,方便开发者进行开发和调试。 实现这个登录注册系统的过程通常包括以下步骤: 1. 创建数据库表并设计数据结构。 2...

    购物车(jsp+servlet+javabean)

    Servlet会更新JavaBean中的购物车状态,然后可能与数据库交互,更新或查询商品库存。最后,Servlet将处理结果返回给JSP,JSP根据这些数据更新页面显示,展示用户的购物车状态。 通过这个项目,你可以学习到如何使用...

    javaee 实验报告 实验一 JSP+Servlet+Javabean+jdbc-基于MVC模式的数据库的应用

    接着,创建了一个名为`DBUtil`的工具类,该类提供静态方法`getConnection()`来获取数据库连接,使用了JDBC API的`Class.forName()`加载驱动,然后通过`DriverManager.getConnection()`建立连接。 实验一之后,实验...

    基于JSP+Servlet+JavaBean+Dao开发模式——学生体质管理系统{2018.2的IDEA加8.0的MySQL和9.0.11的Tomcat实现}

    在本项目中,DAO类会包含连接数据库、执行SQL语句的方法,比如插入、更新、删除和查询学生体质记录。这样,即使数据库结构发生变化,业务层代码也不需要做大的调整。 项目的源代码组织结构通常如下: - `src` 目录...

    jsp+servlet+javaBean学生选课系统

    2. **选课模块**:用户通过JSP界面选择课程,Servlet处理选课请求,更新学生的选课信息,并可能通过JavaBean与数据库交互。 3. **课程管理模块**:教师可以添加、删除或修改课程信息,这些操作通过Servlet处理,...

Global site tag (gtag.js) - Google Analytics