您的位置:首页 > 运维架构 > Tomcat

事务、Tomcat服务器的搭建

2015-08-11 19:09 477 查看
领卓教育培训第二十九天

事务

简介

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。

代码示例

创建SQLManager类

[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class SQLManager {
    private Connection connection;

    public Connection getConnection() {
        return connection;
    }

    public void setConnection(Connection connection) {
        this.connection = connection;
    }

    private static SQLManager manager;

    // 单子设计模式
    public static synchronized SQLManager newInstance() {
        if (manager == null) {
            manager = new SQLManager();
        }
        return manager;
    }

    private SQLManager() {
        try {
            Class.forName("com.mysql.jdbc.Driver");// 加载数据库驱动
            // 连接数据库
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/class", "root", "123456");
            if (!connection.isClosed()) {
                Statement sql = connection.createStatement();// 实例化Statement对象
                sql.execute(
                        "CREATE TABLE if not exists register (ID int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,user_Name varchar(30) NOT NULL,password varchar(30) not null)");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


创建Test类

[code]import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {
    public static void main(String[] args) {
        Connection conn=SQLManager.newInstance().getConnection();
        try {
            Statement statement = conn.createStatement();
            //数据库连接默认每一条语句都是一个事务,会单独执行
            conn.setAutoCommit(false);//取消Connection自动提交
            statement.addBatch("insert into register(user_name,password) values('zhaoliu','123456') ");
            //下面一句话报错,这三句话都不会执行!
            statement.addBatch("insert into register(username,password) values('maqi','123456') ");
            statement.addBatch("insert into register(user_name,password) values('zhouba','123456') ");
            statement.executeBatch();
            conn.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


Tomcat服务器

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

主要是创建servlet,给前端提供数据。

代码示例

在Eclipse中部署Tomcat服务器,创建一个servlet,实现web页面与服务器的数据交互。

创建servlet类 MyServletTest

[code]import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServletTest
 */
@WebServlet("/MyServletTest")
public class MyServletTest extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyServletTest() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //使用浏览器提交数据默认的编码格式为ISO-8859-1
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        //将得到的数据转换为UTF-8编码格式
        username=Encoding.doEncoding(username);
        password=Encoding.doEncoding(password);
        //让浏览器以UTF-8编码格式进行解析
        response.setHeader("Content-type", "text/html;charset=UTF-8");
        response.getWriter().append("用户名:"+username+"  密码:"+password);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}


创建编码格式转换的方法类Encoding

[code]import java.io.UnsupportedEncodingException;

public class Encoding {
    /**
     * 将得到的ISO-8859-1编码字符串转换为UTF-8
     * @param s ISO-8859-1编码字符串
     * @return UTF-8编码字符串
     */
    public static String doEncoding(String s){
        try {
            byte[] array=s.getBytes("ISO-8859-1");
            s=new String(array,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return s;
    }
}


运行结果:

首先启动服务器:




打开浏览器输入:

http://localhost:8080/MyTomcat/MyServletTest?username=张三&password=123456


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: