java调用sql server的存储过程(dbutils)

一般我们在写接口或者后台的时候,java用的是springmvc框架,而连接数据库则用到的是jdbc(原始的),为了更加方便,通过配置文件的方式连接数据库(sql server2008),通过两天的学习,和自己的揣摩,终于弄出来了,为了给一些需要的又刚好没有找到这个方法的程序员提供一个参考,也算是献丑了(捂脸)。

废话不多讲,直接上代码,本人用的是springmvc框架,连接数据库用的是dbutils类,调用存储过程,

第一步:连接数据库。


driverClassName=net.sourceforge.jtds.jdbc.Driver
url=jdbc:jtds:sqlserver://192.168.0.1:1433;DatabaseName=数据库的名称
username=用户名
password=密码


spring的配置文件为

<!-- 配置数据源 -->
	<bean id="dataSource" name="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${driverClassName}"></property>
		<property name="url" value="${url}" />
		<property name="username" value="${username}" />
		<property name="password" value="${password}" />
	</bean>
这样一来,java连接sql server的连接就通了,是不是很简单,哈哈

第二步:创建一个存储过程(带参数的,不带参数的更简单,)

ALTER PROCEDURE [dbo].[getAllUserNote] 
	-- Add the parameters for the stored procedure here
	@DataFlag bit=true
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT  * from TC2_UserNote  where  DataFlag=@DataFlag ;
END
TC2_UserNote表的详情如下
         [ID] [bigint] IDENTITY(1,1) NOT NULL,
	[DataFlag] [bit] NOT NULL,
	[Remark] [nvarchar](200) NULL,

有三个字段,分别是ID,
DataFlag,和Remark,举个例子,实际情况根据自身的条件设置,可以也自己写个demo
第三步,java调存储过程,重点哦,用到的是dbutils中的execute这个方法,

public static List<UserNote> queryUserNoteByID(boolean DataFlag) throws SQLException {
		Connection conn = null;
		try {
			conn = JdbcUtil.getConnection();
			QueryRunner qr = new QueryRunner();
			String sql = "{call getAllUserNote(?)}";
			List<List<UserNote>> userNote = qr.execute(conn, sql, new BeanListHandler<UserNote>(UserNote.class), DataFlag);
			
			return userNote.get(0);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;

	}

其中, UserNote是一个类,和数据库的字段是对应,这样用他来接收查询出来的数据列表。

第四步,测试

	@Test
	public void Test() {
		
		//查询操作
		try {
			List<UserNote> userNotes=UserNoteDao.queryUserNoteByID(true);
			System.out.println(userNotes.size());
			//List<UserNote> uList = userNotes.get(0);
			for (UserNote userNote : userNotes) {
				System.out.println(userNote.getID());
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
UserNoteDao是第三步中的类名,用了static方法,这里为了测试用,取数据表中的ID值,如下
22CA4275-7A8B-4A46-A1AC-0C9917ECC983
9FCA4275-7A8B-4A46-A1AC-0C9917ECC983
E0569587-C88B-461F-86F8-1620141F5FC3
9831B13E-259E-46F9-9556-17516F861209
F3CCFBD4-DA4F-4E87-B313-1B223FF90D2B
5D611F04-8CD0-4EA9-8B36-379278CA38EB
FA6F18F9-1E6D-4C9F-94BC-BBFCA079726F
AEC9895E-D9BE-4359-8DEB-BC308D0CCB72
F3070F26-E381-4361-8F60-CB79197A0D0F
B6D061E3-9312-49E2-8F8E-CD4144CAD880
5E78E2B9-630A-49DC-B98E-FA1C31F42021
对比数据表中 的数据,


大功告成,这样做的时候非常方便,同样的插入和添加操作也是一样,如有疑问,肯请指出~


猜你喜欢

转载自blog.csdn.net/qq_27010291/article/details/78259875