Mysql的参数化操作

package funcs;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MysqlOperation
{
	public static void ReadFromMysql(String lastname)
	{
		// Concat lastname
		lastname = lastname + "%";

		Connection con = null;
		PreparedStatement query = null;
		ResultSet rs = null;

		String url = "jdbc:mysql://localhost:8080/sakila";
		String user = "lemon";
		String password = "789uio&*(";

		List<funcs.Entity.actor> actors = new LinkedList<funcs.Entity.actor>();

		try
		{
			con = DriverManager.getConnection(url, user, password);
			query = con.prepareStatement("SELECT * FROM `actor` ar WHERE ar.`last_name` LIKE ? ORDER BY ar.actor_id DESC LIMIT ?");
			query.setString(1, lastname);  //设置第一个问号处的值
			query.setInt(2, 5);            //设置第二个问号处的值
			rs = query.executeQuery();

			while (rs.next())
			{
				funcs.Entity.actor ac = new funcs.Entity.actor();
				ac.setID(rs.getString(1));
				ac.setFirstName(rs.getString(2));
				ac.setLastName(rs.getString(3));
				ac.setLastUpdate(rs.getString(4));
				actors.add(ac);
			}

			if (actors.isEmpty())
			{
				System.out.println("No results!");
			}
			else
			{
				System.out.println("Results:");

				for (int i = 0; i < actors.size(); i++)
				{
					System.out.println(actors.get(i).getID() + "\t" + actors.get(i).getFirstName() + "\t" + actors.get(i).getLastName() + "\t" + actors.get(i).getLastUpdate());
				}

			}

		}
		catch (SQLException ex)
		{
			Logger lgr = Logger.getLogger(MysqlOperation.class.getName());
			lgr.log(Level.SEVERE, ex.getMessage(), ex);

		}
		finally
		{
			try
			{
				if (rs != null)
				{
					rs.close();
				}
				if (query != null)
				{
					query.close();
				}
				if (con != null)
				{
					con.close();
				}

			}
			catch (SQLException ex)
			{
				Logger lgr = Logger.getLogger(MysqlOperation.class.getName());
				lgr.log(Level.WARNING, ex.getMessage(), ex);
			}
		}
	}
}


你可能感兴趣的:(java,mysql,数据库,DB,sql注入,参数化)